1 回答

TA貢獻1963條經驗 獲得超6個贊
我認為Array 原型的組合some和功能應該足夠了。everywith 的版本some返回布爾結果。with 的版本filter返回行本身。除非你想要實現的是檢查表是否包含重復的行?我在下面添加了一個示例。
const table = [
[
{value: "1", active: false},
{value: "3", active: false},
{value: 0, active: false}
],
[
{value: "text", active: false},
{value: "8", active: false},
{value: 0, active: false}
],
[
{value: "1", active: false},
{value: "3", active: false},
{value: 0, active: false}
]
];
const rowToFind=[
{value: "1", active: false},
{value: "3", active: false},
{value: 0, active: false}
];
let foundRows=table.filter(m => m.every((el, indx, arr)=>rowToFind[indx].value==el.value));
let foundRowsBoolean=table.some(m => m.every((el, indx, arr)=>rowToFind[indx].value==el.value));
console.log(foundRows);
console.log(foundRowsBoolean);
//Check duplicated rows
let foundDuplicates=table.some((el, indx)=> table.some((el2, indx2)=> indx!=indx2 && el.every((e, indx)=>e.value==el2[indx].value)));
console.log(`Contains duplicates: ${foundDuplicates}`);
添加回答
舉報