arr1 = [
{
"levelNumber": "2",
"name": "abc",
},
{
"levelNumber": "3",
"name": "abc"
},
{
"levelNumber": "3",
"name": "raks",
}
]
在這種情況下,我的結果陣列應該有最大 levelNumber 的物件,即 3。
它應該看起來像:
resultArr = [
{
"levelNumber": "3",
"name": "abc"
},
{
"levelNumber": "3",
"name": "raks",
}
]
請注意,這里的 levelNumber 可以是任何東西..請幫助我使用通用的 nodejs 代碼來獲取重復的最大值物件
uj5u.com熱心網友回復:
您可以先找到陣列中所有物件的最大級別,然后過濾陣列
arr1 = [
{
"levelNumber": "2",
"name": "abc",
},
{
"levelNumber": "3",
"name": "abc"
},
{
"levelNumber": "3",
"name": "raks",
}
]
const maxLevel = String(Math.max(...arr1.map(obj => obj.levelNumber)))
const maxLevelObjects = arr1.filter(obj => obj.levelNumber === maxLevel)
console.log(maxLevelObjects);
uj5u.com熱心網友回復:
const arr1 = [
{
levelNumber: '2',
name: 'abc',
},
{
levelNumber: '3',
name: 'abc',
},
{
levelNumber: '3',
name: 'raks',
},
];
const getHighLevelElements = (array) => {
if (array.length === 0) return null;
array.sort((elem1, elem2) => {
if (Number(elem1.levelNumber) < Number(elem2.levelNumber)) {
return 1;
}
if (Number(elem1.levelNumber) > Number(elem2.levelNumber)) {
return -1;
}
return 0;
});
return array.filter((elem) => elem.levelNumber === array[0].levelNumber);
};
const resultArr = getHighLevelElements([...arr1]);
console.log(resultArr);
uj5u.com熱心網友回復:
我首先會呼叫一個變數highestLevel來存盤在物件陣列中找到的最高級別的數字(稍后將在回圈時使用),遍歷整個陣列并檢查每個鍵levelNumber并存盤該數字IF highestLevel低于當前的值物件levelNumber。在遍歷陣列并獲得實際highestLevel數字后,我將再次回圈并僅獲取與我的變數等效的物件highestLevel
uj5u.com熱心網友回復:
const data = [
{
"levelNumber": "2",
"name": "abc",
},
{
"levelNumber": "3",
"name": "abc"
},
{
"levelNumber": "3",
"name": "raks",
}
];
const levelNumbers = data.map((item) => parseInt(item.levelNumber));
const maxLevelNumber = Math.max(...levelNumbers);
const highestLevelItems = data.filter((item) => item.levelNumber == maxLevelNumber.toString());
console.log(highestLevelItems);
/* output
[
{ levelNumber: '3', name: 'abc' },
{ levelNumber: '3', name: 'raks' }
]
*/
uj5u.com熱心網友回復:
你可以arr1用Array.prototype.reduce()迭代一次
代碼:
const arr1 = [{levelNumber: '2',name: 'abc',},{levelNumber: '3',name: 'abc',},{levelNumber: '3',name: 'raks'}]
const result = arr1.reduce((a, c) => {
if (!a.length || c.levelNumber === a[0].levelNumber) {
a.push(c)
}
if ( c.levelNumber > a[0].levelNumber) {
a = [c]
}
return a
}, [])
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/310986.html
標籤:javascript 节点.js 数组 打字稿 降低
上一篇:鍵入時更新Select2的值?
