0
点赞
收藏
分享

微信扫一扫

JS二维数组

weednoah 2022-03-12 阅读 173

JS二维数组相关

Array.map() 方法

方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,同时不会改变原来的数组。

  1. 语法 :new Map([iterable])

  2. 参数:iterable
    可以是一个数组或者其他 iterable 对象,其元素为键值对(两个元素的数组,例如: [[ 1, ‘one’ ],[ 2, ‘two’ ]])。 每个键值对都会添加到新的 Map。null 会被当做 undefined。

  3. 简单数组
    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 ]

  4. 对象数组和构造器
    //对象数组和构造器
    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()

  1. 借助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)
  2. 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)})

举报

相关推荐

0 条评论