js判断数组中是否包含某个值
/** * 判断数组中是否包含某个值 * @param arr 数组 * @param str 值 * @returns {boolean} */ function contains(arr, str) { var i = arr.length-1; while (i--) { if (arr[i] == str) { return true; } } return false; }
var arr1 = ['a', 'b']; var arr2 = {'name': 'yy', 'password': '123'}; //in 的使用 console.log('a' in arr1); //false console.log('a' in arr2); //false //indexOf 的使用 console.log(arr1.indexOf('a')); // true console.log(arr2.indexOf('a')); //报错 //includes的使用 console.log(arr1.includes('a')); //true console.log(arr2.includes('a')); //报错
function inArray (array, search) { for (var i in array) { if (array[i] == search) { return true; } } return false; }
总结:
- in操作符针对的是key,而非value。而对于普通的一维数组来说,key是隐藏的。所以,对于判断某个数组中是否含有某个值来说,这个方案并不合适。
- indexOf是用于字符串的。但是在这里,用于一个数组的话,也是可以执行的。但是用在一个对象obj上面的时候,是报错的。
- 同indexOf一样,includes仅能用于数组操作
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步