如何使用javascript从对象数组和单独对象中的数组中检索属性?
我想从对象数组中检索某些属性并将其存储在数组中 数据结构如下所示如何使用javascript从对象数组和单独对象中的数组中检索属性?,javascript,Javascript,我想从对象数组中检索某些属性并将其存储在数组中 数据结构如下所示 object_arr [{…}]0: first_property: "color" id: 25 x: 10 y: 50 z: 56 _proto__: Objectlength: 1__proto__: Array(0) 我想检索x、y和z值,因此输出应该如下所示 (3) [10, 50, 56] 0: 10 1: 50 2: 56 leng
object_arr [{…}]0:
first_property: "color"
id: 25
x: 10
y: 50
z: 56
_proto__: Objectlength: 1__proto__: Array(0)
我想检索x、y和z值,因此输出应该如下所示
(3) [10, 50, 56]
0: 10
1: 50
2: 56
length: 3
__proto__: Array(0)
so final_output[0] should give me 10, final_output[1] should give me 50 and final_output[2] should give 56
我试过什么
let final_output = object_arr.map(m => {
return [
m.x,
m.y,
m.z
]
});
最终的_输出如下所示
final_output [Array(3)]
0: (3) [10, 50, 56]
length: 1
the expected output is as below,
final_output (3) [10, 50, 56]
0: 10
1: 50
2: 56
length: 3
我怎样才能解决这个问题。有人能帮我吗。谢谢。您可以清楚地看到:
最终_输出[阵列(3)]
0:(3)[10,50,56]
这是数组的数组。
因此,要获得值10,您必须执行:final\u输出[0][0]。
或<代码>输出=最终输出[0]代码>
然后输出[0]
您可以清楚地看到:
最终_输出[阵列(3)]
0:(3)[10,50,56]
这是数组的数组。
因此,要获得值10,您必须执行:final\u输出[0][0]。
或<代码>输出=最终输出[0]代码>
然后
输出[0]
如果数组只包含一个对象,则可以直接将其属性添加到数组中,如下所示:
const object_arr=[{first_property:“color”,id:25,x:10,y:50,z:56}];
常数[{x,y,z}]=对象使用destructuring从数组中获取对象键
常数res=[x,y,z];//创建包含x、y、z属性的数组
控制台日志(res)代码>如果数组仅包含一个对象,则可以将其属性直接添加到数组中,如下所示:
const object_arr=[{first_property:“color”,id:25,x:10,y:50,z:56}];
常数[{x,y,z}]=对象使用destructuring从数组中获取对象键
常数res=[x,y,z];//创建包含x、y、z属性的数组
控制台日志(res)代码>执行以下操作:
let object_arr = { first_property: "color", id: 25, x: 10, y: 50, z: 56}
let final_output = [object_arr.x, object_arr.y, object_arr.z];
这样做:
let object_arr = { first_property: "color", id: 25, x: 10, y: 50, z: 56}
let final_output = [object_arr.x, object_arr.y, object_arr.z];
这很简单。我认为您的困惑源于试图将输入数组作为一个整体来使用。如果只需要第一个元素的数据,则不需要map
。只需直接用[0]
:
let object_arr=[{first_属性:“color”,id:25,x:10,y:50,z:56}]
设最终_输出=[object_arr[0].x,object_arr[0].z,object_arr[0].z];
log(最终输出)
这非常简单。我认为您的困惑源于试图将输入数组作为一个整体来使用。如果只需要第一个元素的数据,则不需要map
。只需直接用[0]
:
let object_arr=[{first_属性:“color”,id:25,x:10,y:50,z:56}]
设最终_输出=[object_arr[0].x,object_arr[0].z,object_arr[0].z];
console.log(final_output)
final_output=final_output[0]
有什么问题?您的预期输出是什么?我已经更新了我尝试过的代码的最终输出是什么样子的问题。@someuser2491当您的输入数组中有多个对象(而不是只有一个)时,您能显示预期输出吗我只回答字面上的问题,尽管我对这个问题很困惑:finalOutput=(({x,y,z})=>[x,y,z])(object_arr[0])
。final_output=final_output[0]有什么问题
?您的预期输出是什么?我已经用我尝试过的代码更新了问题“最终输出是什么样子的”。@someuser2491当您的输入数组中有多个对象(而不是只有一个)时,您能显示预期输出吗?我只回答字面上的问题,尽管我对这个问题很困惑:finalOutput=(({x,y,z})=>[x,y,z])(对象_arr[0])
。谢谢,这应该行得通。这可以用一个语句完成吗?我认为这不是输入格式。它周围有一个数组。谢谢,这应该行得通。这可以用一个语句完成吗?我认为这不是输入格式。它周围有一个数组。flatMap
版本在re在输入数组中不止是一个元素。它可能是我们想要的,有一系列的x
、y
、和z
值,但这似乎不太可能。@ScottSauyet我同意。我最初认为这似乎很奇怪,并且会想象它足以满足OPs的需要。然而,它似乎不太可能在OP之后,所以我假设如果他们使用数组,他们需要一个平面图。总的来说,这两个问题在我看来都不是很清楚,所以我对OP之后的内容给出了最好的估计(因此有两个解决方案)如果输入数组中有多个元素,flatMap
版本会很奇怪。它可能是我们想要的,有一系列的x
、y
和z
值,但这似乎不太可能。@ScottSauyet我同意。我最初认为它看起来很奇怪,并且会想象它是e不足以满足OPs需求。然而,似乎这不是OPs想要的,所以我假设如果他们使用数组,他们需要一个平面图。总的来说,这两个问题在我眼中都不是很清楚,所以我对OPs想要的东西给出了最好的估计(因此有两个解决方案)