我有一個物件陣列串列,其中包含一個嵌套的物件陣列,如下所示:
const mainList = [
{
id:'001',
category: 'A',
content: [
{
title: 'Apples',
language: 'en'
},
{
title: '蘋果',
language: 'zh-cn'
},
{
title: '蘋果HK',
language: 'zh-hk'
},
],
},
{
id:'002',
category: 'B',
content: [
{
title: 'Grapes',
language: 'en'
},
{
title: '葡萄',
language: 'zh-cn'
},
{
title: '葡萄HK',
language: 'zh-hk'
},
],
},
{
id:'003',
category: 'C',
content: [
{
title: 'Bananas',
language: 'en'
},
{
title: '香蕉',
language: 'zh-cn'
},
{
title: '香蕉HK',
language: 'zh-hk'
},
]
}
]
我想使用 lodash _sortBy 按字母順序按標題顯示此串列,如下所示:
Apples, Bananas, Grapes
我的做法:
console.log(_sortBy(mainList.content.title))
但結果回來了 undefined at index 0
提前致謝!
uj5u.com熱心網友回復:
您使用 sortBy 的方式不正確,您可以像這樣使用 sortBy:
console.log(_.sortBy(mainList, "content.title"));
但是串列沒有content.title,所以需要指定要排序的內容的索引 content[0].title
所以按標題排序的正確方法是這樣的:
console.log(_.sortBy(mainList, "content[0].title"));
uj5u.com熱心網友回復:
您實際上并不需要 lowdash 來進行排序:
const list = [{id:'001', category: 'A',
content: [{title: 'Apples',language: 'en'},
{title: '蘋果',language: 'zh-cn'},
{title: '蘋果HK', language: 'zh-hk'}]},
{id:'002', category: 'B',
content: [{title: 'Grapes',language: 'en'},
{title: '葡萄',language: 'zh-cn'},
{title: '葡萄HK',language: 'zh-hk'}]},
{id:'003', category: 'C',
content: [{title: 'Bananas',language: 'en'},
{title: '香蕉',language: 'zh-cn'},
{title: '香蕉HK',language: 'zh-hk'}]}
];
const srtv=o=>o.content[0].title;
console.log(list.sort((a,b)=>srtv(a).localeCompare(srtv(b))))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/405664.html
標籤:
下一篇:我正在閱讀我的bootstrap.min.js,但我無法理解這條線在這里實際做了什么[f=e.attr("data-target");f||(f=e.attr("href
