从对象数组中获取最后一个为对象的项目

时间:2018-10-05 10:57:35

标签: javascript arrays

我正在尝试使用以下方法从对象数组中获取最后一个对象

const rowLen = previous_data.High.length;
          var temp = previous_data.High.map((object,i) => {
             if (rowLen === i + 1) {
                return object;
            }
        });

然后我要在下一个对象中填充值,所以我做的像

temp [0] .keyname。

现在,在获得温度的同时,它会返回对象数组,因此第二次获得

[ 0: undefined, 1: {key:value}]

所以,我不明白为什么要返回数组以及我只想要最后一个对象的那个。

3 个答案:

答案 0 :(得分:3)

Map为数组的每次迭代返回一个值。如果您从map中的回调函数返回一个值,则该值将在相应的索引处返回,否则将返回未定义状态

由于只需要数组中的最后一个值,因此可以简单地使用slice

var temp = previous_data.High.slice(-1);

答案 1 :(得分:1)

因为当您要更改原始数组而不选择元素时,map返回一个使用map的数组。像这样做。 previous_data.High [previous_data.High.length -1]。 这将为您提供最后一个元素。

答案 2 :(得分:0)

Destructuring assignment 使您可以分配变量,交换属性,忽略属性,分配默认值,访问所需的任意多个属性。


演示

let arrObj = [{
    key0: "value0",
    key1: "value1",
    key2: "value2",
    key3: "value3"
  },
    [1, 2, 3],
  {
    key4: "value4"
  }];

let [{key0:K0,key1:K1,key2:K2,key3:K3},[a, b, c],{key4:last}] = arrObj;

  console.log(last);
  console.log(c);
  console.log(K1);