ES6-数组
es6对于数组的以及json的操作新增了以下的方法。
1.Array.from()
我们在es6之前,json转换为数组,我们需要在循环中进行往数组插入。
var json = { "0":"张一", "1":"张二", "2":"张三" }; var arr = []; for(var i in json){ arr.push(json[i]); } console.log(arr) //["张一","张二","张三"]
es6为我们提供了Array.from()方法,只需要在标准json最后插入length字段,就可直接实现json转化为数组;
var json = { "0":"张一", "1":"张二", "2":"张三", length:3 //此处为新增的json长度,其值决定了最终转化之后数组的长度 }; var arr = Array.from(json); consloe.log(arr) // ["张一", "张二", "张三"]
2. find()
从数组中找到指定匹配的元素。其方法含有三个参数,第一个参数为当前查找的值,第二个参数为当前值的索引,第三个参数为数组;
arr.find(function(value,index,arr){})
var arr = ["张一","张二","张三"]; var result = arr.find(function(value,index,arr){ return value == "张一" }); console.log(result); // "张一"
如果返回值满足其调条件,则返回对应的value,若有多个数据元素满足其条件时,则返回匹配到的第一个元素,并且停止查找。如果没有匹配到相应的数据,则返回值为undefined。
//满足多个条件时
let arr1 = [1,2,3,4,5,6];
let result1 = arr1.find(function(value,index,arr){
return value > 1
});
console.log(result1); // 此时的result值为2
//没有符合条件的值
let arr2 = [1,2,3,4,5,6];
let result2 = arr2.find(function(value,index,arr){
return value > 8
});
console.log(result2); // 此时的result值为undefined
3.fill()
fill()方法对数组进行填充,其方法包含三个参数,第一个参数为填充的变量,第二个为开始填充的位置下标,第三个参数为填充截止的位置下标(不包含次位置的元素)。
var arr = ["张一","张二","张三"];
var newArr = arr.fill("replace",2,3);
console.log(newArr) //["张一", "张二", "replace"]
4.entries()
entries()方法,对数组形成迭代形式的数组,对于手动执行的数组操作有着极大的方便。
let arr = ["张一","张二","张三"];
let list = arr.entries();
consloe.log(list.next().value); // [0, "张一"]
consloe.log(list.next().value); // [1, "张二"]
consloe.log(list.next().value); // [2, "张三"]
5. for...of循环
其一般形式为:
let arr = ["张一","张二","张三"];
for(let item of arr){
console.log(item) //"张一","张二","张三"
}
如果想获取其对应的下标,需要配合entries()方法使用,即可获取其数组下标以及对应的值。
let arr = ["张一","张二","张三"]; for(let [index,value] of arr.entries()){ console.log(index + "-" +value) //0-张一 1-张二 2-张三 }
浙公网安备 33010602011771号