Javascript 如何有效地使用2个数组形成对象

Javascript 如何有效地使用2个数组形成对象,javascript,arrays,Javascript,Arrays,我有两个数组 const x = [0, 1, 2, 3, 4, 5] const y = [6, 7, 8, 9, 10, 11] 我试图将这两个数组组合成一个对象数组,这样它就变成: [{x: 0, y: 6}, {x: 1, y: 7}, {x: 2, y: 8}, {x: 3, y: 9}, {x: 4, y: 10}, {x: 5, y: 11}] 目前我所做的是循环其中一个数组的长度,然后将对象推送到新数组 let newArray = [] for(i = 0; i <

我有两个数组

const x = [0, 1, 2, 3, 4, 5]
const y = [6, 7, 8, 9, 10, 11]
我试图将这两个数组组合成一个对象数组,这样它就变成:

[{x: 0, y: 6}, {x: 1, y: 7}, {x: 2, y: 8}, {x: 3, y: 9}, {x: 4, y: 10}, {x: 5, y: 11}]

目前我所做的是循环其中一个数组的长度,然后将对象推送到新数组

let newArray = []
for(i = 0; i < x.length; i++) {
   newArray.push({x: x[i], y: y[i]})
}
let newArray=[]
对于(i=0;i

只是想知道是否有一个更有效的方法来做到这一点,谢谢

您可以使用
map
执行相同的操作

const x=[0,1,2,3,4,5]
常数y=[6,7,8,9,10,11]
const newArray=x.map((数字,索引)=>({x:number,y:y[index]}));

log(newArray)
您可以使用
map
执行相同的操作

const x=[0,1,2,3,4,5]
常数y=[6,7,8,9,10,11]
const newArray=x.map((数字,索引)=>({x:number,y:y[index]}));

log(newArray)
您可以查看一个对象,并获取拥有一个对象数组的条目

这种方法也适用于更多阵列

const
x=[0,1,2,3,4,5],
y=[6,7,8,9,10,11],
结果=对象
.entries({x,y})
.reduce((r[k,a])=>a.map((v,i)=>({…r[i],[k]:v})),[]);
控制台日志(结果)

.as console wrapper{max height:100%!important;top:0;}
您可以检查一个对象并获取具有对象数组的条目

这种方法也适用于更多阵列

const
x=[0,1,2,3,4,5],
y=[6,7,8,9,10,11],
结果=对象
.entries({x,y})
.reduce((r[k,a])=>a.map((v,i)=>({…r[i],[k]:v})),[]);
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
您的解决方案很好。使用
.map
的另一种方法:

const getCoordinates=(xCoordinates=[],yccoordinates=[])=>
map((x,索引)=>({x,y:yCoordinates[index]}));

log(getCoordinates([0,1,2,3,4,5],[6,7,8,9,10,11])您的解决方案很好。使用
.map
的另一种方法:

const getCoordinates=(xCoordinates=[],yccoordinates=[])=>
map((x,索引)=>({x,y:yCoordinates[index]}));

log(getCoordinates([0,1,2,3,4,5],[6,7,8,9,10,11])使用
map
x.map((x,i)=>({x,y:y[i]}))
这能回答你的问题吗?从复杂性的角度来看,也许可以使用loadsh?no.
O(n)
是最好的选择,因为您仍然需要遍历数组。在执行速度方面——不太可能。看见主要问题是这个问题没有通用的答案,这取决于您的用例、数据等等。但是,很多时候,差别其实并不重要。如果这段代码不是瓶颈,那么减少1ms不会让你的应用程序更快。使用
map
x.map((x,i)=>({x,y:y[i]}))
这能回答你的问题吗?从复杂性的角度来看,也许可以使用loadsh?no.
O(n)
是最好的选择,因为您仍然需要遍历数组。在执行速度方面——不太可能。看见主要问题是这个问题没有通用的答案,这取决于您的用例、数据等等。但是,很多时候,差别其实并不重要。如果这段代码不是瓶颈,那么减少1ms不会让你的应用程序更快。这是“更高效”吗?不,简单循环就我所知总是更快。这是“更高效”吗?不,简单循环就我所知总是更快。