我如何检查数组是否不包含 Ionic 4 上的另一个数组?
How do i check if array not contains another array on Ionic 4?
我正在使用 Ionic 4,我想知道如何检查一个数组是否不在其他数组上以形成条件,但它不起作用,我做错了什么?
method() {
if (!this.array.includes(['Web development', 'Football'])
) {
console.log(this.array)
//doSomething
}
已更新
一旦点击一个按钮,imDone 方法就会启动。我想要的是一旦点击,如果 iDislike 数组(所有这些词)不在 arrayChip 上,然后做一些事情
ngOnInit() {
this.arrayChip = [
'4',
"4",
'5',
'5',
'7',
'34',
'1',
'9',
'7',
'9',
'4',
'3',]
}
imDone() {
let iDislike = ['Web 3', '2', '4', '5', '6']
const includesListOfItemsToCheck = this.arrayChip.some(subArray =>
iDislike.every(item => subArray.includes(item)));
console.log(includesListOfItemsToCheck)
console.log('arrayChip: ' + this.arrayChip)
}
Array.includes 仅适用于原始值,如字符串和数字。
而且你不能在 JavaScript
中使用 === 比较两个数组
所以像这样的东西应该可以完成工作 -
const array = [['Soap'], ['Web development', 'Football'], ['Globe', 'Science', 'Spartan']]
const listOfItemsToCheck = ['Web development', 'Football']
const includesListOfItemsToCheck = array.some(subArray => subArray.every(item => listOfItemsToCheck.includes(item)));
console.log(includesListOfItemsToCheck);
这里我使用 Array.some 如果数组中的任何项目满足我的 return 语句中的条件,它将 return 一个布尔值。
并且 Array.every 将 return 一个布尔值,确定数组中的每个项目是否满足 return 语句中的条件。
更新以回答更新后的问题:
const arrayChip = ['4',"4",'5','5','7','34','1','9','7','9','4','3']
const iDislike = ['Web 3', '2', '4', '5', '6']
const allIDislikeDoesntExistInArrayChip = iDislike.every(item => !arrayChip.includes(item))
console.log(allIDislikeDoesntExistInArrayChip)
我正在使用 Ionic 4,我想知道如何检查一个数组是否不在其他数组上以形成条件,但它不起作用,我做错了什么?
method() {
if (!this.array.includes(['Web development', 'Football'])
) {
console.log(this.array)
//doSomething
}
已更新
一旦点击一个按钮,imDone 方法就会启动。我想要的是一旦点击,如果 iDislike 数组(所有这些词)不在 arrayChip 上,然后做一些事情
ngOnInit() {
this.arrayChip = [
'4',
"4",
'5',
'5',
'7',
'34',
'1',
'9',
'7',
'9',
'4',
'3',]
}
imDone() {
let iDislike = ['Web 3', '2', '4', '5', '6']
const includesListOfItemsToCheck = this.arrayChip.some(subArray =>
iDislike.every(item => subArray.includes(item)));
console.log(includesListOfItemsToCheck)
console.log('arrayChip: ' + this.arrayChip)
}
Array.includes 仅适用于原始值,如字符串和数字。 而且你不能在 JavaScript
中使用 === 比较两个数组所以像这样的东西应该可以完成工作 -
const array = [['Soap'], ['Web development', 'Football'], ['Globe', 'Science', 'Spartan']]
const listOfItemsToCheck = ['Web development', 'Football']
const includesListOfItemsToCheck = array.some(subArray => subArray.every(item => listOfItemsToCheck.includes(item)));
console.log(includesListOfItemsToCheck);
这里我使用 Array.some 如果数组中的任何项目满足我的 return 语句中的条件,它将 return 一个布尔值。 并且 Array.every 将 return 一个布尔值,确定数组中的每个项目是否满足 return 语句中的条件。
更新以回答更新后的问题:
const arrayChip = ['4',"4",'5','5','7','34','1','9','7','9','4','3']
const iDislike = ['Web 3', '2', '4', '5', '6']
const allIDislikeDoesntExistInArrayChip = iDislike.every(item => !arrayChip.includes(item))
console.log(allIDislikeDoesntExistInArrayChip)