我有以下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这样的库
答案 0 :(得分:5)
答案 1 :(得分:3)
如果你已经在使用jQuery,它也有一个map()
函数:
var output = $.map(data, function(obj) { return obj.key; }).join(' + ');
答案 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