javascript - 如何在javascript中用两个数组创建json

标签 javascript

我有两个 json: 我想用这两个数组创建 json;

 var __columns = ["Field1", "Field2", "Field3", "Field4"];
 var __rows = ["valueField1_1", "valueField2_1", "valueField3_1", "valueField4_1", "valueField1_2", "valueField2_2", "valueField3_2", "valueField4_2", "valueField1_3", "valueField2_3", "valueField3_3", "valueField4_3"];

问题是我想创造这样的东西

var json = [{
  "Field1":"valueField1_1",
  "Field2":"valueField2_1",
  "Field3":"valueField3_1",
  "Field4":"valueField4_1"
},{
  "Field1":"valueField1_2",
  "Field2":"valueField2_2",
  "Field3":"valueField3_2",
  "Field4":"valueField4_2"
},{
  "Field1":"valueField1_3",
  "Field2":"valueField2_3",
  "Field3":"valueField3_3",
  "Field4":"valueField4_3"
}]

最佳答案

使用 的 ES6 解决方案 Array.from Array#reduce 方法。

var __columns = ["Field1", "Field2", "Field3", "Field4"];
var __rows = ["valueField1_1", "valueField2_1", "valueField3_1", "valueField4_1", "valueField1_2", "valueField2_2", "valueField3_2", "valueField4_2", "valueField1_3", "valueField2_3", "valueField3_3", "valueField4_3"];

var res = Array.from({
  // generate array with particular size
  length: __rows.length / __columns.length
    // use map function to generate array element
}, (_, i) => __columns.reduce((obj, e, i1) => {
  // define object property based on the index values
  obj[e] = __rows[i * __columns.length + i1];
  return obj;
  // set empty object as initial argument
}, {}));


console.log(res);

关于javascript - 如何在javascript中用两个数组创建json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39411162/

相关文章:

javascript - 获取 angularjs 中的 $this

javascript - 扩展时设置Select的最大宽度?

javascript - jquery激活特定节点

javascript - 单击事件在表中被触发两次

javascript - 如何使用netsuite中的suitescript提取XML值@attribute?

javascript - 通过字符串路径设置嵌套对象属性

javascript - 使用云代码从 parse.com 检索类

javascript - 对未定义结果执行的方法(来自 promise 解析的方法)

javascript - 更改网格图的颜色 -dojo

javascript - 如何定位存在相同链接的 jquery 单击函数(即在 php foreach 中)?