处理JavaScript复杂对象

时间:2014-07-01 12:18:08

标签: javascript jquery mustache lodash

我有以下JavaScript数组var arr = ['1', '2', '3', '4' ];

我想将此对象转换为单个字符串,以便我应该生成以下输出:1 + 2 + 3 + 4。这在join函数的帮助下正常工作。

arr.join(' + ')生成所需的输出。

问题是我的简单数组现在已转换为复杂对象:

var data = [
{
    "key": "1",
    "IsData": true
},
{
    "key": "2",
    "IsData": false
},
{
    "key": "3",
    "IsData": true
},
{
    "key": "4",
    "IsData": false
}
];

我可以遍历此对象并生成所需的结果1 + 2 + 3 + 4

我想知道是否有更聪明的方式(WITHOUT LOOPING)来获得所需的输出。可以使用像lodash或jquery这样的库

4 个答案:

答案 0 :(得分:5)

尝试使用Array.prototype.map()

data.map(function(val){ return val.key }).join(' + ');

DEMO

答案 1 :(得分:3)

如果你已经在使用jQuery,它也有一个map()函数:

var output = $.map(data, function(obj) { return obj.key; }).join(' + ');

jsFiddle Demo

答案 2 :(得分:0)

试试这个:

data.reduce(function(pstr, co) {
    return pstr+" + "+co.key; 
}, "").slice(3);

答案 3 :(得分:-1)

尝试:

var data = [ { "key": "1", "IsData": true }, { "key": "2", "IsData": false }, { "key": "3", "IsData": true }, { "key": "4", "IsData": false } ];
var outputString = "";
for(var i = 0; i < data.length; i++) {
    outputString += data[i].key;
}
outputString = outputString.split("").join(" + ");
alert(outputString); // 1 + 2 + 3 + 4

Fiddle