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



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

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

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

我想得到如下输出,最终输出(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值。

有人能帮我修一下吗。谢谢

谢谢。

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

您可以使用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], ...]

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

例如,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 };

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

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

最新更新