【发布时间】:2015-10-24 01:33:59
【问题描述】:
我有一系列 JSON 条目:
[{"num": "1","name_A": "Alex" ,"name_B": "Bob"}, {"num": "2","name_A": "Anne" ,"name_B": "Barbra"}]
我正在尝试尽可能轻松地将这个对象数组转换为两个对象 - 一个具有标题 name_A,第二个具有标题 name_B。对象必须包含标题和匹配的 num-name 对数组:
[{title: "name_A", names:[{"1", "Alex}, {"2", "Anne"}]}, {title:"name_B", names: [{"1", "Bob"}, {"2", "Barbra"}]}]
起初我尝试通过减少对象数组两次来简单地创建两个对象,一次用于 name_A,第二次用于 name_B,然后将所有内容粘合在一起:
// get 'names' array
var name_A = objArray.reduce(function(memo, curr) {
memo.push({curr.num, curr.name_A})
return memo;
}, []);
但即使这样也失败了。如果我用空数组初始化reduce,为什么备忘录没有推送方法?
第二个问题,我是在正确的轨道上还是有更好的方法来实现这一目标?
【问题讨论】:
-
{ "1", "Alex" }不是有效对象。对象元素的形式都是key: value。
标签: javascript arrays json functional-programming