数组常用方法

扩展运算符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
let arr = [1, 2, 3];
let arr2 = [...arr]; //等同于 let arr2 = Array.from(arr);

let [a, b, c] = [1, 2, 3]; //a=1, b=2, c=3

let [ , , third] = ["foo", "bar", "baz"]; //third="baz"

let [head, ...tail] = [1, 2, 3, 4]; //head=1, tail=234

let [x, y, ...z] = ['a']; //x=a, y=undefined, z=[], 如果解构不成功,变量的值就等于undefined

let [x, y = 'b'] = ['a']; // x='a', y='b',解构赋值允许指定默

// 解构赋值超强
const {
form: { validateFields }
} = this;
validateFields((err, values) => {
if (!err) {
// eslint-disable-next-line no-console
console.log("Received values of form: ", values);
}
});

Array.from:把类数组(获取一组元素、arguments…)对象转成数组,个人观点:具备length这个东西都可以使用Array.from()转数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
let aLi = document.querySelectorAll('ul li');
let arrLi = Array.from(aLi); //等同于let arrLi = [].slice.call(aLi); ES5方法

function show(){
let args = Array.from(arguments);
console.log(args) //[1,2,3,4,5]
}
show(1,2,3,4,5)

let str = 'strive';
let arr = Array.from(str); //等同于let arr = str.split('');
console.log(arr); //[s,t,r,i,v,e]

let json = {
0:'apple',
1:'banana',
2:'orange',
length:3
}
let arr = Array.from(json);
console.log(arr); //['apple','banana','orange'],json对象必须有length,否则为[]

Array.of:把一组值,转成数组(没用过)

1
2
let arr = Array.of('apple','banana','orange');
console.log(arr); //['apple','banana','orange']

Array.find:查找,找出第一个符合条件的数组成员,如果没找到返回undefined

1
2
3
4
5
let arr = [23,900,101,80,100];
let res = arr.find((val, index, arr) => {
return val>100;
})
console.log(res); //返回数字900

Array.findIndex:找的是位置,没找到返回-1

1
2
3
4
5
let arr = [23,900,101,80,100];
let res = arr.findIndex((val, index, arr) => {
return val>100;
})
console.log(res); //返回数字1

Array.fill:Array.fill(填充的东西,开始位置,结束位置)(没用过)

1
2
3
4
5
let arr = new Array(10);
arr.fill('默认值');
console.log(arr); //['默认值'......]10个默认值
arr.fill('默认值',1,3); //1起始位置,3结束位置
console.log(arr); //下标为1和下标为2的是默认值,其他为空

Array.includes:返回布尔值true/false,跟indexOf类似

1
2
3
let arr = ['apple','banana','orange'];
let b = arr.includes('banana');
console.log(b); //返回布尔值true

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×