我如何检查数组是否不包含 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)