JavaScript-从多个数组生成对象
我有3个阵列: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'
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图像并将其转换为代码