我必须像这样排列:
var a1= ["a","b","c","d","e","f"]
var a2 = [1,2,3,4,5,6]
我想将它们格式化成这样的对象数组:
js = [
{key = "a", val=1}
{key = "b", val=2}
{key = "c", val=3}
{key = "d", val=4}
{key = "e", val=5}
{key = "f", val=6}
]
我试过这样的东西
for (var i = 0; i < a1.length; i++) {
for (var j = 0; j <= i; j++) {
var obj = {};
if (i == j) {
obj.key = a1[i];
obj.value = a2[j];
js.push(obj);
}
}
}
我无法获得所需的输出。谁能帮帮我?
最佳答案
如果两个数组的长度始终相同,您可以使用 Array#map
组合它们:
function arraysToObject(keyArr, valArr) {
if(keyArr.length !== valArr.length) throw "Arrays must be of same length";
else return keyArr.map((e,i) => {
return {key:e, val:valArr[i]};
});
}
let a1 = ["a", "b", "c", "d", "e", "f"]
let a2 = [1, 2, 3, 4, 5, 6]
let a3 = ["a", "b", "c", "d", "e", "f", "g"];
let a4 = [1, 2, 3, 4, 5, 6];
console.log(JSON.stringify(arraysToObject(a1, a2))); // runs fine
console.log(arraysToObject(a3, a4)); // throws an error
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 使用我们自己的键将两个数组作为 json 对象推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51727283/