JS二维数组相关
Array.map() 方法
方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,同时不会改变原来的数组。
-
语法 :new Map([iterable])
-
参数:iterable
可以是一个数组或者其他 iterable 对象,其元素为键值对(两个元素的数组,例如: [[ 1, ‘one’ ],[ 2, ‘two’ ]])。 每个键值对都会添加到新的 Map。null 会被当做 undefined。 -
简单数组
const arr = [1, 3, 4, 5, 6, 7, 8, 10];
const cube = (num) => {
return num * num;
}
const res = arr.map(cube);//[ 1, 9, 16, 25, 36, 49, 64, 100 ]
// or
const res = arr.map((num)=>{
return num * num;
})
//[ 1, 9, 16, 25, 36, 49, 64, 100 ] -
对象数组和构造器
//对象数组和构造器
const ObjArray = [{
name: ‘a’,
age: 18,
isLikeEat: true,
isLikeSleep: true
}, {
name: ‘b’,
age: 19,
isLikeEat: true,
isLikeSleep: true
}, {
name: ‘c’,
age: 22,
isLikeEat: true,
isLikeSleep: true
}];
const Person = (target) => {
return {
name: target.name || ‘default’,
age: target.age || 18,
_eat: function() {
console.log(target.isLikeEat ? ‘i like eat’ : ‘i dont like eat’);
},
_sleep: function() {
console.log(target.isLikeSleep ? ‘i like sleep’ : ‘i dont like sleep’)
}
}
}
let newPersons = ObjArray.map(Person);
console.log((newPerso// [ { name: 'a// age: 18,
// _eat: [Function: _eat],
// _sleep: [Function: _sleep] },
// { name: ‘b’,
// age: 19,
// _eat: [Function: _eat],
// _sleep: [Function: _sleep] },
// { name: ‘c’,
// age: 22,
// _eat: [Function: _eat],
// _sleep: [Function: _sleep] } ]
4. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
5. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
6. 全新的 KaTeX数学公式 语法;
7. 增加了支持甘特图的mermaid语法[^1] 功能;
8. 增加了 多屏幕编辑 Markdown文章功能;
9. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
10. 增加了
Array().fill().map()
- 借助new Array()生成指定数组长度的假数据
const data = new Array(5).fill().map((v, i) => {
return { name: “XXX” + i, price: i, category: Math.random() > 0.5 ? ‘蔬菜’ : ‘水果’ }
})
console.log(data) - js二维数组的创建
方法一:
new Array(n).fill(new Array(n).fill(1));
当一个对象被传递给 fill方法的时候, 填充数组的是这个对象的引用
所以一维中的每一个数组,都指向同一个引用
如果一维中的任何一个元素执行push,哪个每一个二维中都会多一个元素
所以为了避免这种情况可以
new Array(n).fill().map(()=>{return new Array(n).fill(false)})
方法二:
Array.from(new Array(3),()=>{return new Array(3).fill(false)})