Skip to content

Latest commit

 

History

History
60 lines (43 loc) · 2.19 KB

如何在 JavaScript 中判断数组是否包含某个值?.md

File metadata and controls

60 lines (43 loc) · 2.19 KB

如何在 JavaScript 中判断数组是否包含某个值?

  • 常规循环:递减循环效率更高通常最高。
const arr = ['red', 'yellow', 'black', 'white', 'yellow']

function contains(a, obj) {
  let i = a.length
  while (i--) {
    if (a[i] === obj) {
      return true
    }
  }
  return false
}

contains(arr, 'yellow') // true
contains(arr, 'plum') // false
  • Array.prototype.indexOf() 判断数组中是否存在某个值,如果存在,则返回数组元素的下标,否则返回 -1
arr.indexOf('plum') // -1
arr.indexOf('yellow') // 1
arr.indexOf('yellow', 2) // 4

arr.indexOf('red') != -1 // true
arr.includes('red') // true
arr.includes('plum') // false
  • Array.prototype.find() 返回数组中满足条件的第一个元素的值,如果没有,返回 undefined
arr.find((item) => item === 'black' && item) // "black"
arr.findIndex((item) => item === 'white') // 3

许多框架都有类似的方法:

更多资料

Stack Overflow 有很多这方面的讨论,包括检查数组对象,以上提供方法的基准测试等,详细内容请查阅 How do I check if an array includes a value in JavaScript?