javascript - 使用我们自己的键将两个数组作为 json 对象推送

标签 javascript arrays json

我必须像这样排列:

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/

相关文章:

JavaScript - 将四字符数组转换为整数

javascript - 基于键的独特元素

php - 使用 array_walk() 时是否需要这种技术

ios - 如何在对象内部映射 JSON 数据对象?

jquery - 将 json 转换为 html

javascript - Paper.js Subraster 添加到矩形后面而不是前面

javascript - 赋值后需要分号,然后是 js 字符串插值

javascript - 使用 Cypress 测试 Stripe Checkout

javascript - 无法理解这个涉及简单 for 循环的基本算法?

java - 自定义 block 不可冶炼? Java,Minecraft Forge 1.12.2