js判断数组中是否存在某个值的几种方法
array.indexOf判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1let arr = ['something', 'anything', 'nothing', 'anything'];let index = arr.indexOf('nothing');# 结果:2array.includes(searchElement[, fromIndex])判断一个数组是否包含一个
文章目录
1. array.indexOf
判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1
let arr = ['something', 'anything', 'nothing', 'anything'];
let index = arr.indexOf('nothing');
// 结果:2
2. array.includes(searchElement[, fromIndex])
判断一个数组是否包含一个指定的值,如果存在返回 true,否则返回false。
参数:searchElement
需要查找的元素值。
参数:thisArg(可选)
从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。
let numbers = [12, 5, 8, 130, 44];
let result = numbers.includes(8);
// 结果: true
result = numbers.includes(118);
// 结果: false
3. array.find(callback[, thisArg])
返回数组中满足条件的第一个元素的值,如果没有,返回undefined
参数:callback
element 当前遍历到的元素。
index 当前遍历到的索引。
array 数组本身。
参数:thisArg(可选)
指定 callback 的 this 参数。
// ---------- 元素是普通字面值 ----------
let numbers = [12, 5, 8, 130, 44];
let result = numbers.find(item => {
return item > 8;
});
// 结果: 12
// ---------- 元素是对象 ----------
let items = [
{id: 1, name: 'something'},
{id: 2, name: 'anything'},
{id: 3, name: 'nothing'},
{id: 4, name: 'anything'}
];
let item = items.find(item => {
return item.id == 3;
});
// 结果: Object { id: 3, name: "nothing" }
4. array.findIndex(callback[, thisArg])
返回数组中满足条件的第一个元素的索引(下标), 如果没有找到,返回-1
参数:callback
element 当前遍历到的元素。
index 当前遍历到的索引。
array 数组本身。
参数:thisArg(可选)
指定 callback 的 this 参数。
// ---------- 元素是普通字面值 ----------
let numbers = [12, 5, 8, 130, 44];
let result = numbers.findIndex(item => {
return item > 8;
});
// 结果: 0
// ---------- 元素是对象 ----------
let items = [
{id: 1, name: 'something'},
{id: 2, name: 'anything'},
{id: 3, name: 'nothing'},
{id: 4, name: 'anything'}
];
let index = items.findIndex(item => {
return item.id == 3;
});
//结果: 2
5. $.inArray(searchElement, arr)
使用jquery的inArray方法,该方法返回元素在数组中的下标,如果不存在与数组中,那么返回-1;
参数:searchElement
需要查找的元素值。
参数:arr
需要查找的数组
var arr=['aaa','bbb','ccc','ddd','eee'];
var a= $.inArray('bbb',arr);
console.log(a);
//结果: 1
6. Array.prototype.some(callbackFn[, thisArg])
some()
方法测试数组中是否至少有一个元素通过了由提供的函数实现的测试。如果在数组中找到一个元素使得提供的函数返回 true,则返回 true;否则返回 false。它不会修改数组。
参数:callbackFn
为数组中的每个元素执行的函数。
element 数组中当前正在处理的元素。
index 正在处理的元素在数组中的索引。
array 调用了 some() 的数组本身。
thisArg 可选
执行 callbackFn 时用作 this 的值。参见迭代方法。
const fruits = ["apple", "banana", "mango", "guava"];
function checkAvailability(arr, val) {
return arr.some((arrVal) => val === arrVal);
}
checkAvailability(fruits, "kela"); // false
checkAvailability(fruits, "banana"); // true
更多推荐
所有评论(0)