所以我得到了這段代碼,每當有人選擇最高時,他們就應該從查詢中洗掉,正如您從代碼片段中看到的那樣,它正常作業,4 被捕獲并按預期洗掉。
const result_arr = [
{selected: 3, absent: 0},
{selected: 4, absent: 0},
{selected: 2, absent: 0},
]
const max = Math.max(
...result_arr.filter(item => !item.absent).map(item => item.selected)
);
console.log(max);
let newArr = result_arr.filter(item => item.selected != max).filter(item => !item.absent);
console.log(newArr);
我遇到了以下代碼段中的問題。每當其中一個 Selected 命中相等的數字時,它肯定會發生,它回傳一個空陣列。
const result_arr = [
{selected: 4, absent: 0},
{selected: 4, absent: 0},
{selected: 4, absent: 0},
]
const max = Math.max(
...result_arr.filter(item => !item.absent).map(item => item.selected)
);
console.log(max);
let newArr = result_arr.filter(item => item.selected != max).filter(item => !item.absent);
console.log(newArr);
我想要的是回傳和使用所有 3 個,如下面的代碼片段所示。
const result_arr = [
{selected: 4, absent: 0},
{selected: 4, absent: 0},
{selected: 4, absent: 0},
]
const max = Math.max(
...result_arr.filter(item => !item.absent).map(item => item.selected)
);
console.log(max);
let newArr = result_arr.filter(item => item.selected == max).filter(item => !item.absent);
console.log(newArr);
我將 != 更改為 ==,所以我對如何執行此操作持謹慎態度,但如何將其編譯成一個呢?如果其他作業,我已經嘗試過。
uj5u.com熱心網友回復:
您的初始代碼對于您的要求來說似乎太復雜了。
獲取一組選定值。
獲取
max這些值。如果
every所選陣列中的值max回傳整個陣列,否則回傳過濾后的陣列。
const arr=[{selected:3,absent:0},{selected:4,absent:0},{selected:2,absent:0}];
const arr2=[{selected:4,absent:0},{selected:4,absent:0},{selected:4,absent:0}];
const arr3=[{selected:4,absent:0},{selected:2,absent:0},{selected:4,absent:0}];
function check(arr) {
const selected = arr.map(obj => obj.selected);
const max = Math.max(...selected);
if (selected.every(el => el === max)) {
return arr;
}
return arr.filter(item => item.selected !== max)
}
console.log(check(arr));
console.log(check(arr2));
console.log(check(arr3));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/471407.html
標籤:javascript
