Javascript将数组中对象的属性转换为字符串

时间:2016-05-04 20:52:53

标签: javascript arrays object

我有一个对象数组,它们都是同一个类的所有实例,如下所示:

class Foo {
    constructor(bar){
        this.bar = bar;
    }
}

var myArr = [new Foo("1"), new Foo("2"), new Foo("3"), new Foo("4")];

我希望能够将数组中每个对象的bar属性加入逗号分隔的字符串中。

是否可以在对象的属性上调用.join方法?如果没有低于最有效的方法吗?

 var result = "";
 for (var i = 0; i < myArr.length; i++){
     result += myArr[i].bar+","
 }

还是有另一种方式吗?

3 个答案:

答案 0 :(得分:2)

您可以使用Array.prototype.map

var result = myArr.map(function(x) { return x.bar; }).join(',');

答案 1 :(得分:1)

您可以使用Array.prototype.reduce

var result = myArr.reduce(function(acc, el) {
 if(!acc) return el.bar;
 return acc + ', ' + el.bar;
}, '');

答案 2 :(得分:0)

使用Array.reduce函数的替代解决方案:

var barValues = myArr.reduce((a,b) => (a['bar'] || a) + "," + b['bar']);
console.log(barValues);  // "1,2,3,4"