如何使用JavaScript从对象数组中检索选择性属性并存储为对象?

时间:2019-11-05 11:32:51

标签: javascript

我想从下面的数据结构中检索属性x,y,z并将其存储在单独的数组中。

下面是在控制台中登录的数据结构

object_arr  [{…}]0: 
     first_property: "color"
     id: 25
     x: 10
     y: 50
     z: 56
    _proto__: Objectlength: 1__proto__: Array(0)

我想得到如下输出,     final_output(3){10, 50, 56}

我尝试使用     const final_output = arr_obj.map(m => m.x);

这会正确返回x值,但是,当我尝试以下操作时,

const final_output = arr_obj.map(m => {m.x; 
                                       m.y;
                                       m.z;});

这给出了不确定的值。

如何从上述数据结构arr_objects中检索所有三个x,y,z值。

有人可以帮我解决这个问题吗?谢谢。

谢谢。

4 个答案:

答案 0 :(得分:1)

您可以使用reduce:

const final_output = arr_obj.reduce((prev, obj) => {
  prev.push(Object.values(obj)); //Just add the values you want here
  return prev;
}, []);
// [[10, 50, 56], ...]

答案 1 :(得分:1)

const final_output = arr_obj.map(m => {
  return [
    m.x, 
    m.y,
    m.z
  ]
});

答案 2 :(得分:0)

您可以使用foreach并将其分配给临时对象

let newArray = []
arr_obj.forEach((element) => {
newArray.push({x: element.x,y: element.y,z: element.z})
})

答案 3 :(得分:0)

您可以访问对象数组,然后使用各个属性。

例如var object_arr [0]-将在第0个索引处给出对象。并且可以从该对象引用属性x,y和z(例如:object_arr [0] .x,object_arr [0] .y)

由于object_arr是一个数组,您可以遍历它并获取值。

var output = [];
for(var i = 0; i < object_arr.length; i++){
    output.push(
        { 'x' : object_arr[i].x,
          'y': object_arr[i].y,
          'z': object_arr[i].z
        });
}

另一种方法是:

var output = [];
object_arr.forEach(function(item, index){
    output.push(
       {
          'x' : item.x,
          'y' : item.y,
          'z' : item.z,
       }
    );
});

如果您只想在其中包含这3个值的数组,那可能非常简单(0是您要获取其值的索引):

var output = [object_arr[0].x, object_arr[0].y, object_arr[0].z];

如果只需要一个对象而不是数组,则可以执行以下操作:

 var output = { 'x' : object_arr[0].x, 'y': object_arr[0].y, 'z': object_arr[0].z };