javascript - 如何通过下划线更改集合结构?

标签 javascript underscore.js

我目前的收藏如下:

[
  {Tom:true,age:23},
  {Jack:true:age:22},
  {Lucy:false,age:22}
]

如何将其转换为下划线形式?

[
  {name:'Tom',isMale:true,age:23},
  {name:'Jack',isMale:true,age:22},
  {name:'Lucy',isMake:true,age:22}
]

最佳答案

您可以使用reduce (瑞士军刀迭代器)复制内部对象,同时重新排列 nameisMale 值。像这样的事情:

_(a).map(function(o) {
    return _(o).reduce(function(memo, v, k) {
        if(k === 'age') {
            # Copy 'age' through as-is
            memo[k] = v
        }
        else {
            # Assume the rest is name:boolean so bust it apart
            memo.name   = k;
            memo.isMale = v;
        }
        return memo;
    }, { });
});

演示:http://jsfiddle.net/ambiguous/FE4Rw/

关于javascript - 如何通过下划线更改集合结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258189/

相关文章:

javascript - UnderscoreJS _.every 为空

javascript - 使用 underscore.js 在深度嵌套的 JSON 中查找值

javascript - 以奇怪的方式对数组进行排序

javascript - 使用 $http.post 和 resangular post 时出现 SyntaxError : Unexpected token F,

javascript - 前置摄像头不自动对焦或手动对焦

javascript - 下划线 - 从每个项目获取属性,分组并丢弃其余部分

javascript - 检查字符串中的重复值

javascript - 在不覆盖现有键值的情况下将对象的值添加到对象数组

javascript - 在 JavaScript 中检查二叉树是否对称

javascript - 在 map 上获取可见标记的最有效方法?