[英]Iterate over Array of Objects with Conditions
我的對象數組如下所示:
const categories = [{
id: 1,
name: 'level 1'
}, {
id: 2,
name: 'level 2'
}, {
id: 3,
name: 'level 3'
}];
我想動態迭代這個 category 數組並將name
屬性輸出為字符串,除數組中的第一個對象外,用逗號分隔
const output = 'level 2, level 3';
類別可能包含多個對象。
const categories = [{
id: 1,
name: 'level 1'
}, {
id: 2,
name: 'level 2'
}, {
id: 3,
name: 'level 3'
}, ..., ..., ...];
但是,重要的是不輸出第一個對象
const categories = [{id: 1, name: 'level 1'}];
const output = '';
您可以通過結合使用破壞賦值和擴展運算符來排除第一個元素
const categories = [ { id: 1, name: 'level 1' }, { id: 2, name: 'level 2' }, { id: 3, name: 'level 3' } ] const [first, ...rest] = categories const res = rest.map(cat => cat.name).join(', ') console.log(res)
這很簡單
const getNames = arr => arr.map(item => item.name).slice(1).join(", "); // or slice first, map later const categories1 = [{ id: 1, name: 'level 1' }, { id: 2, name: 'level 2' }, { id: 3, name: 'level 3' }]; const categories2 = [{ id: 1, name: 'level 1' }]; console.log("1:", getNames(categories1)) console.log("2:", getNames(categories2))
這可以通過多種方式完成。 然而,使用Array.prototype.map()結合Array.prototype.join()和Array.prototype.slice()是最簡單的方法。
const categories = [
{ id: 1, name: 'level 1' },
{ id: 2, name: 'level 2' },
{ id: 3, name: 'level 3' }
];
categories.slice(1).map(category => category.name).join(', ');
聚苯乙烯
const categories = [{ id: 1, name: 'level 1' }, { id: 2, name: 'level 2' }, { id: 3, name: 'level 3' }]; const output = categories.reduce((ans, v, i) => { return i === 1 ? v.name : (ans + ',' + v.name) }); console.log(output)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.