ES6 操作数组方法
1.判断是否为数组
- Array.isArray( )
let arr = [1,2,3]
console.log( Array.isArray(arr) )// true
console.log( Array.isArray([]) ) //true
- 使用instanceof 方法 用于判断一个变量是否是某个对象的实例
const array = new Array();
array instanceof Array; //true
- constructor属性 返回对创建此对象的数组函数的引用,就是返回对象相对应的构造函数。
const array = new Array();
array.constructor === Array; // true
2.创建数组
- new Array() 创建数组
- 如果使用Array构造函数传入一个数值型的值,那么数组的长度length属性会被设置为该值;
let items = new Array(2);
console.log(items.length); // 2
console.log(items[0]); // undefined
console.log(items[1]); // undefined
- 如果传入一个非数值型的值,那么这个值会成为目标数据的唯一项;
let items = new Array('a')
console.log(items.length); // 1
console.log(items[0]); // a
console.log(items[1]); // undefined
- 如果传入多个值,无论这些值是不是数值型的,都会变为数组的元素。
let items = new Array('a','b','c')
console.log(items.length); // 3
console.log(items[0]); // a
console.log(items[1]); // b
- Array.of()
无论有多少参数,参数是什么类型的,Array.of()方法总会创建一个包含所有参数的数组
let items = Array.of(2);
console.log(items.length); // 1
console.log(items[0]); // 2
let items = Array.of(2,3);
console.log(items.length); // 2
console.log(items[0]); // 2
3.伪数组转数组
- 方式一:
let str = "hello";
let arr = [...str];
console.log(arr); // ["h", "e", "l", "l", "o"]
- 方式二:
let str = "hello";
let arr = Array.from(str);
console.log(arr); // ["h", "e", "l", "l", "o"]
Array.from() 可接收三个参数,第一个参数为类数组对象,第二个参数为映射函数,如果使用了映射函数,可以传第三个参数表示映射函数的this值。
function translate () {
return Array.from(arguments, (value) => value+1);
}
let numbers = translate(1, 2, 3);
console.log(numbers); // [2, 3, 4]
let helper = {
add (value) {
return value+1;
}
}
function translate () {
return Array.from(arguments, helper.add, helper);
}
let numbers = translate(1, 2, 3);
console.log(numbers); // [2, 3, 4]
4.查找元素
- find()返回查找第一个满足条件的值
- findIndex()返回查找第一个满足条件的值的索引
let numbers = [1, 2, 3, 4, 5];
console.