Javascript 我需要这个阵列解决方案,有什么办法吗?
问题:Javascript 我需要这个阵列解决方案,有什么办法吗?,javascript,arrays,reactjs,react-native,react-redux,Javascript,Arrays,Reactjs,React Native,React Redux,问题: let arr1 = [{ min: 10, max: 20 }, { min: 20, max: 40 }, { min: 20, max: 40 } ]; let jsonVal = { id: 12345, v1: 5, v2: 10, v3: 9 }
let arr1 = [{
min: 10, max: 20
},
{
min: 20, max: 40
},
{
min: 20, max: 40
}
];
let jsonVal = { id: 12345, v1: 5, v2: 10, v3: 9 }
输出:
let output = [{
min: 10, max: 20, v1: 5
},
{
min: 20, max: 40, v2: 10
},
{
min: 20, max: 40, v3: 9
}
];
jsonVal可以在arr1的基础上增加。如果arr1的长度为4,则将有v1、v2、v3、v4。此外,没有要匹配的id字段。
如何获得此解决方案?我能想到的是:
让arr1=[{
民:10,,
最高:20
},
{
民:20,,
最高:40
},
{
民:20,,
最高:40
}
];
设jsonVal={
v1:5,
v2:10,
v3:9
}
console.log(arr1.map)(函数(a,i){
返回{…a,[“v”+(i+1)]:jsonVal[“v”+(i+1)]}
}));代码>试试这个
注意-此解决方案依赖于jsonVal具有与数组相同数量的键,反之亦然。两者的长度必须相同
let arr1 = [
{
min: 10,
max: 20
},
{
min: 20,
max: 40
},
{
min: 20,
max: 40
}
];
let jsonVal = { v1: 5, v2: 10, v3: 9 };
let jsonKeys = Object.keys(jsonVal);
const arr = arr1.map((value, idx) => {
const currKey = jsonKeys[idx];
const currVal = jsonVal[currKey];
return {
...value,
[currKey]: currVal
};
});
console.log(arr);
让arr1=[{min:10,max:20},{min:20,max:40},{min:20,max:40}];
设jsonVal={
v1:5,
v2:10,
v3:9
};
const result=arr1.map((项目,i)=>{
const[key,val]=Object.entries(jsonVal)[i]
返回{
…项目,
[键]:val
};
})
控制台日志(结果)
您是否确保jsonVal
的键始终是v
+数字?是的,它将始终是相同的。您可以使用Object.entries(jsonVal)
来获得键/值对的二维数组(例如,['v1',5],'v2',10],'v3',9]]),您可以使用arr1.map(…)
以获得您想要的输出。@AmeyKhoje似乎您已经得到了一些答案,它们中的任何一个有效吗?欢迎来到堆栈溢出。请参阅,也请通过,以便您熟悉如何使用此平台。