includes
Array.includes(searchElement[, fromIndex])
参数:
(1)searchElement: 必填,需要查找的元素,
(2)fromIndex: 非必填,默认是0,从该索引处开始搜索。如果是正值,且formIndex >= Array.length,则必定搜索不到结果。如果是负值,且0 <= (Array.length+formIndex) < Array.length,则从(Array.length+formIndex)开始搜索;如果是负值,且(Array.length+formIndex) < 0,则从位置0开始搜索。
返回值:
true(Array中包含searchIndex), false(Array中不包含searchIndex)
[1,2,3].includes(3) //true
[1,2,'3'].includes(3) //false
[1,2,NaN].includes(NaN) //true
这里的包含采用的比较方法是零值相等。
可类比字符串搜索匹配的test方法,可以参见我的另外一篇博文字符串搜索匹配之 test&search&indexOf
indexOf
Array.indexOf(searchElement[, fromIndex])
参数:
(1)searchElement: 必填,需要查找的元素,
(2)fromIndex: 非必填,默认是0,从该索引处开始搜索。如果是正值,且formIndex >= Array.length,则必定搜索不到结果。如果是负值,且0 <= (Array.length+formIndex) < Array.length,则从(Array.length+formIndex)开始搜索;如果是负值,且(Array.length+formIndex) < 0,则从位置0开始搜索。
返回值:
元素在Array中第一次出现的位置(Array中包含searchIndex), -1(Array中不包含searchIndex)
[1,2,3].indexOf(3); //2
[1,2,'3'].indexOf(3); //-1
[1,2,NaN].indexOf(NaN); //-1
[1,2,1,NaN].indexOf(1); //0
这里的包含采用的比较方法是严格相等。
可以用indexOf方法来获得数组中字符串出现的位置
var arr = [1,2,3,1,2,4,5]
var indices = [];
var searchElement = 1
var id = arr.indexOf(searchElement, 0)
while(id !== -1) {
indices.push(id)
id = arr.indexOf(searchElement, id+1)
}
console.log(indices) //[0,3]