es6、es5的一些判断数组当前元素的一些方法的分析心得(数组学习篇:一)

版权归本人所有,未经允许严禁转载

多说无益,再bb就是我的锅了,直接进入正题

为了更方便的做一些演示,所以在工作台添加一个名为arr的数组类型变量:

const arr = ['Jimmy', 'Tom', 'Lily', 'Lucy'];

 1. arr.indexOf(item[, fromIndex])方法:item参数代表的是某个元素,如果元素存在就返回该元素的index值,而如果不存在则返回-1,fromIndex参数代表数组开始寻找的index,默认为0,复数则从莫为开始计算;特点是找到第一个元素的索引之后马上返回值并且停止执行

console.log('indexOf方法参数为Tom的返回值', arr.indexOf('Tom'));  // 输出1
console.log('indexOf方法参数为Lilei返回的值', arr.indexOf('Lilei')); // 输出-1
console.log('indexOf方法参数为Tom,2返回的值', arr.indexOf('Tom', 2)); // 输出-1

2. arr.includes(item[, fromIndex])方法:item参数如果为该数组的某个元素就返回true,反之返回false;fromIndex参数代表数组开始寻找的index,用法同上(indexOf)

console.log('includes方法参数为Tom返回值', arr.includes('Tom')); // 输出true
console.log('includes方法参数为Likei返回的值', arr.includes('Lilei')); // 输出false
console.log('includes方法参数为Tom,2返回值', arr.includes('Tom', 2)); // 输出false

3. arr.find(callback[, thisArg])方法,寻找出数组中第一个匹配的元素,并结束查找,callback为函数类型(参数有:element--当前元素,index当前的索引值,array当前元素),thisArg参数为this的控制权,特点:传入特定的值如果数组中存在则返回这个值;传入索引值,则会返回索引值对应的值

console.log('arr.find(arrFind(item, index, arr))的值', arr.find(arrFind)); // 输出1
function arrFind(item, index, arr) {
    return item === 'Tom';
    // return index === 0
}

4. arr.findIndex(callback[, thisArg])方法,寻找出数组中第一个匹配元素的索引值,用法类似于find,如果存在则返回index值,不存在则返回-1,跟find方法一样,虽然作用比较单一,但是扩展性比较好

console.log('arr.find(arrFind(item, index, arr))的值', arr.findIndex(arrFind)); // 输出Tom
function arrFind(item, index, arr) {
    // return item === 'Tom';
    return index === 1
}

5. in操作符,寻找某属性是否存在于该对象,在数组中使用时必须传入index(索引值),因为索引值是数组的键值,换个词说,就是属性名的意思;跟includes到的区别是,includes传入的是具体值,而in传入的是index值

console.log('in操作符', 1 in arr); // 输出true

6. arr.lastIndexOf(item[, fromIndex]),表示数组中某元素最后出现的位置,可参照字符串的lastIndexOf()方法,参数和参数的用法跟indexOf是完全一样的

console.log('indexOf方法参数为Tom的返回值', arr.lastIndexOf('Tom'));  // 输出1
console.log('indexOf方法参数为Lilei返回的值', arr.lastIndexOf('Lilei')); // 输出-1
console.log('indexOf方法参数为Tom,2返回的值', arr.lastIndexOf('Tom', 2)); // 输出-1

7. arr.some(callback[, thisArg]),表示该数组中是否有匹配的元素,如果有则返回true,如果没有则返回false,参数跟find方法的参数完全一样

console.log('arr.find(arrFind(item, index, arr))的值', arr.some(arrFind)); // 输出true
function arrFind(item, index, arr) {
    return item === 'Tom';
    // return index === 0
}

以上为个人总结出来的一些数组对当前元素匹配与判断,如果有遗漏和错误请指正!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章