Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过下划线更改集合结构?_Javascript_Underscore.js - Fatal编程技术网

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

Javascript 如何通过下划线更改集合结构?,javascript,underscore.js,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} ] 您可以使用(瑞士军刀迭代器)复制内部对象,同时重新排列name和isMale值。大概是这样

我目前的收藏如下:

[
  {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}
]
您可以使用(瑞士军刀迭代器)复制内部对象,同时重新排列
name
isMale
值。大概是这样的:

_(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;
    }, { });
});
演示:

您可以使用(瑞士军刀迭代器)复制内部对象,同时重新排列
name
isMale
值。大概是这样的:

_(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;
    }, { });
});
演示:

您可以使用(瑞士军刀迭代器)复制内部对象,同时重新排列
name
isMale
值。大概是这样的:

_(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;
    }, { });
});
演示:

您可以使用(瑞士军刀迭代器)复制内部对象,同时重新排列
name
isMale
值。大概是这样的:

_(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;
    }, { });
});
演示:

age
从您的对象,然后将其转换为可以为您的工作提供基础:

_.map(data, function(o) {
    var p = _.pairs(_.omit(o, 'age'))[0]; // [name, boolean]
    return {
        age: o.age,
        name: p[0],
        isMale: p[1]
    };
});
age
从您的对象中提取,然后将其转换为,可以为您提供一个使用的基础:

_.map(data, function(o) {
    var p = _.pairs(_.omit(o, 'age'))[0]; // [name, boolean]
    return {
        age: o.age,
        name: p[0],
        isMale: p[1]
    };
});
age
从您的对象中提取,然后将其转换为,可以为您提供一个使用的基础:

_.map(data, function(o) {
    var p = _.pairs(_.omit(o, 'age'))[0]; // [name, boolean]
    return {
        age: o.age,
        name: p[0],
        isMale: p[1]
    };
});
age
从您的对象中提取,然后将其转换为,可以为您提供一个使用的基础:

_.map(data, function(o) {
    var p = _.pairs(_.omit(o, 'age'))[0]; // [name, boolean]
    return {
        age: o.age,
        name: p[0],
        isMale: p[1]
    };
});