我想从下面的数据结构中检索属性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值。
有人可以帮我解决这个问题吗?谢谢。
谢谢。
答案 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 };