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-张三
}

 

posted on 2019-06-19 10:38  杰伦家的瓶子  阅读(161)  评论(0)    收藏  举报