Dizeleri bir dizi varsa .join()
, her öğe virgülle ayrılmış olarak tek bir dize almak için yöntemi kullanabilirsiniz, böylece:
["Joe", "Kevin", "Peter"].join(", ") // => "Joe, Kevin, Peter"
Nesnelerin bir dizi var ve ben içinde tutulan bir değer üzerinde benzer bir işlem gerçekleştirmek istiyorum; bu yüzden
[
{name: "Joe", age: 22},
{name: "Kevin", age: 24},
{name: "Peter", age: 21}
]
daha önce olduğu gibi aynı çıktıyı elde etmek için join
yöntemi yalnızca name
öznitelik üzerinde gerçekleştirin .
Şu anda aşağıdaki işlevi var:
function joinObj(a, attr){
var out = [];
for (var i = 0; i < a.length; i++){
out.push(a[i][attr]);
}
return out.join(", ");
}
Bu kodla ilgili yanlış bir şey yok, işe yarıyor, ama birdenbire basit, özlü bir kod satırından çok zorunlu bir işleve gittim. Bunu yazmanın daha özlü, ideal olarak daha işlevsel bir yolu var mı?
users.map(x => x.name).join(', ');
.
" ,".join([i.name for i in a])