JavaScript-从多个数组生成对象

JavaScript-从多个数组生成对象,javascript,arrays,Javascript,Arrays,我有3个阵列: colors = ['green', 'red', 'black']; positionToId = [0, 32, 15]; results = ["0", "1", "2"]; 想要实现这样的目标: {results: '0', 'positionToId: '31', colors: 'black'}, {results: '1', 'positionToId: '2', colors: 'red'}, {results: '2', 'positionToId: '11'

我有3个阵列:

colors = ['green', 'red', 'black'];
positionToId = [0, 32, 15];
results = ["0", "1", "2"];
想要实现这样的目标:

{results: '0', 'positionToId: '31', colors: 'black'},
{results: '1', 'positionToId: '2', colors: 'red'},
{results: '2', 'positionToId: '11', colors: 'black'}
我该怎么做?
谢谢。

您想将这些数组合并成具有
key=>value
的对象数组

最简单的方法就是找到其中一个

map()方法创建一个新数组,其结果是对调用数组中的每个元素调用提供的函数

例如:

colors=[“绿色”、“红色”、“黑色”];
positionToId=[0,32,15];
结果=[“0”、“1”、“2”];
console.log(results.map)((result,i)=>{
返回{
结果:结果[i],
positionToId:positionToId[i],
颜色:颜色[i],
};

}));由于您有一个数组
结果
,您似乎想将其用作基础,并且您想将这些数字替换为由已经存在的值设置关键帧的对象,因此我只需减少它们

colors = ['green', 'red', 'black'];
positionToId = [0, 32, 15];
results = ["0", "1", "2"];

const newObject = results.reduce((acc, index) => ({
    ...acc,
    [index]: {
        positionToId: positionToId[index],
        colors: colors[index],
    }
}), {})
这还有一个好处,即允许您通过id访问您的项目,而无需在数组上循环检查每个id
const colors=[“绿色”、“红色”、“黑色”];
const positionToId=[0,32,15];
常量结果=[“0”、“1”、“2”];
const addProperties=(属性、名称、结果)=>properties.reduce((结果、属性、索引)=>{
结果[索引][名称]=属性;
返回结果;
},结果);
让output=Array.from(数组(3),()=>({}));
添加属性(颜色,'颜色',输出);
添加属性(positionToId,“positionToId”,输出);
addProperties(结果,'结果',输出);

console.log(输出)
请不要将代码作为图像包含。包括代码作为代码。还有,到目前为止你做了什么?StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑此问题,以说明您在某个问题中遇到的具体问题。有关更多信息,请参阅问题中的.moved图像并将其转换为代码