ES6新增API(Array.from()、Array.of()、 find( )、fill( ))
API一直是我们操作数组和对象最好用也是最便捷的方法,而在ES6中新增的不止有关键字,还有操作数组与对象的API。
Array.from()
将类数组对象或可迭代对象转化为数组。参数是一个数组,返回值也是一个数组。
console.log(Array.from([1,2,3])); //打印值为 [1,2,3]
//也可以含空位
console.log(Array.from([1,2,,3])); //打印值为 [1,2,undefind,3]
也可以将JOSN数组格式的数据转换成数组
let people={
0:'zhangsan',
'1':24, //key值必须是0,1,2......可以是数字或者字符串
length:2 //必须有length这个特殊的属性
};
let trans=Array.from(people);//Array.from()方法
console.log(trans); //['zhangsan',24]
这就是一个标准的JSON数组格式,跟普通的JSON对比是key值是数组下标并且在最后多了一个length属性。只要是这种特殊的json格式都可以轻松使用ES6的语法转变成数组。在ES6中绝大部分的Array操作都存在于Array对象里。我们就用Array.from(xxx)来进行转换。
// 没有 length 属性,则返回空数组
let array = Array.from({
0: '1',
1: '2',
2: 3,
});
console.log(array); // []
如果没有length属性,该方法返回一个空数组。
// 元素属性名不为数值且无法转换为数值,返回长度为 length 元素值为 undefined 的数组
let array1 = Array.from({
a: 1,
b: 2,
length: 2
});
console.log(array1); // [undefined, undefined]
如果属性的名字不是数字类型的或可以转换成数字类型的字符串,则会返回长度为length,值为undefind的数组。
Array.of()
将参数中所有值作为元素转换成数组。参数可以是同类型的数据,也可以是不同类型的数据,其返回值是一个数组
console.log(Array.of(1, 2, 3, 4)); // [1, 2, 3, 4]
参数的数据类型可以不是同一种类型。
console.log(Array.of(1, '2', true)); // [1, '2', true]
参数为空时返回一个空数组。
console.log(Array.of()); // []
find( )
find()是一个实例方法,所谓的实例方法就是并不是以Array对象开始的,而是必须有一个已经存在的数组,然后使用的方法,这就是实例方法(不理解请看下边的代码)。这里的find方法是从数组中查找。在find方法中我们需要传入一个匿名函数,函数需要传入三个参数:
value:表示当前查找的值。
index:表示当前查找的数组索引。
arr:表示当前数组。
let arr=[1,2,3,4,5,6,7,8,9];
console.log(arr.find(function(value,index,arr){
return value > 5;
})) //输出6 注意:在函数中如果找到符合条件的数组元素就return,并停止查找
fill( )
fill()也是一个实例方法,它的作用是把数组进行填充,它接收三个参数,第一个参数是填充的变量,第二个是开始填充的位置,第三个是填充到的位置
let arr=[0,1,2,3,4,5,6,7,8,9];
arr.fill('javascript',2,4);
console.log(arr);//[0, 1, "javascript", "javascript", 4, 5, 6, 7, 8, 9]
如果第二个参数不写的话就从头开始填充,如果第二个参数不写就一直填充到数组最大长度。
//fill(data) 用指定的数据填充代码
const arr = new Array(10);
arr.fill("las")
console.log(arr);//["las","las","las","las","las","las","las","las","las","las"]
下一篇: java简单插入排序实例