前言
学习js--数组
目录
方式3.创建一个数组--Array.from 第二个初始化函数返回数据
1.数组操作
首先要注意且牢记splice、sort、reverse
这3个常用方法是对数组自身的操作,会改变数组自身。其他会改变自身的方法是增删push/pop/unshift/shift
、填充fill
和复制填充copyWithin
。
2.生成类似[1-100]这样的的数组
测试大量数据的数组时可以这样生成:
// fill
const arr = new Array(100).fill(0).map((item, index) => index + 1)
// Array.from()
const arr = Array.from(Array(100), (v, k) => k + 1)
// ... + array.keys()
const ary = [...Array(100).keys()]
new Array(100) 会生成一个有100空位的数组,
这个数组是不能被map(),forEach(), filter(),
reduce(), every() ,some()遍历的,
因为空位会被跳过(for of不会跳过空位,可以遍历)。
[...new Array(4)] 可以给空位设置默认值undefined,
从而使数组可以被以上方法遍历。
3.JS--数组(创建数组) 三种方式
以下三种方式:
方式1.创建一个数组--最简单的方式(push)
利用for循环依次push到数组中
function createData1() {
const data1 = [];
for (let i = 0; i < 10; i++) {
data1.push({
name: `name${i + 1}`,
});
}
return data1;
}
const data1 = createData1();
console.log('第二个输出');
console.log(data1);
方式2.创建一个数组--map方式
- 映射(
map
) 由 {键,值} 对组成的集合,以某种比较键大小关系的谓词进行排列。
function createData2() {
// 如果不 fill 循环默认会跳过空值
return new Array(10).fill(null).map((v, i) => ({ name: `name${i + 1}` }));
}
const data2 = createData2();
console.log('第三个输出');
console.log(data2);
方式3.创建一个数组--Array.from 第二个初始化函数返回数据
function createData3() {
return Array.from({ length: 10 }, (v, i) => ({ name: `name${i + 1}` }));
}
const data3 = createData3();
console.log('第四个输出');
console.log(data3);
效果图如下所示:
第二个输出
[
{ name: 'name1' },
{ name: 'name2' },
{ name: 'name3' },
{ name: 'name4' },
{ name: 'name5' },
{ name: 'name6' },
{ name: 'name7' },
{ name: 'name8' },
{ name: 'name9' },
{ name: 'name10' }
]
第三个输出
[
{ name: 'name1' },
{ name: 'name2' },
{ name: 'name3' },
{ name: 'name4' },
{ name: 'name5' },
{ name: 'name6' },
{ name: 'name7' },
{ name: 'name8' },
{ name: 'name9' },
{ name: 'name10' }
]
第四个输出
[
{ name: 'name1' },
{ name: 'name2' },
{ name: 'name3' },
{ name: 'name4' },
{ name: 'name5' },
{ name: 'name6' },
{ name: 'name7' },
{ name: 'name8' },
{ name: 'name9' },
{ name: 'name10' }
]