变换javascript数组合子

时间:2017-12-05 15:12:35

标签: javascript arrays ecmascript-6

我去了这个json数组

var responseArr = {options :{ch:["Hi", "By",], en:["Peter", "John"]}}

是否可以更改为此表格

var responseArrB = {"options": [{'ch':'Hi',en:'Peter'},{ch:'By',en:'John'}]}

我试过

let responseArrB = responseArr.options.ch.map( item => Object.assign({ch:item.ch, en:item.en}))
console.log(vv)

但是responseArrB..show

{ch: undefined, en: undefined}

我可以显示ch或en但不能组合它

let arrThree = responseArr.options.ch.map( item => Object.assign({ch:item, en:item}))

1 个答案:

答案 0 :(得分:1)

您可以迭代密钥并为每个密钥构建一个新数组。



var object = { options: { ch: ["Hi", "By",], en: ["Peter", "John"] } },
    result = {
        options: Object
            .keys(object.options)
            .reduce((r, k) => (
                object.options[k].forEach((a, i) => {
                    r[i] = r[i] || {};
                    r[i][k] = a;
                }), r), [])
    };

console.log(result);

.as-console-wrapper { max-height: 100% !important; top: 0; }