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}`);
添加回答
举报