将数组转换为键/值对

Kir*_*oss 5 arrays jquery json

我已经将嵌套循环中的不同值推入对象中,结果如下:

obj = ["blue", 1, "red", 4, "yellow", 2, "green", 7];
Run Code Online (Sandbox Code Playgroud)

但我希望它像这样返回:

obj = [{"blue": 1}, {"red": 4}, {"yellow": 2}, {"green": 7}];
Run Code Online (Sandbox Code Playgroud)

我必须手动构建该语法还是有更快的方法?

Pra*_*lan 3

使用简单的 for 循环。

var obj = ["blue", 1, "red", 4, "yellow", 2, "green", 7];

var res = [];

for (var i = 0; i < obj.length; i += 2) {
  var o = {};
  o[obj[i]] = obj[i + 1];
  res.push(o);
}

console.log(res);
Run Code Online (Sandbox Code Playgroud)


ES6解决方案使用Array.from()方法。

let obj = ["blue", 1, "red", 4, "yellow", 2, "green", 7];

console.log(Array.from({ length: obj.length / 2 }, (_, i) => ({ [obj[2 * i]]: obj[2 * i + 1] })));
Run Code Online (Sandbox Code Playgroud)