数组七十二变

2018-08-10 admin
  1. forEach() 方法从头到尾遍历数组,为每个元素调用指定的函数。

    let a = ['a', 'b', 'c']
    a.forEach( (item, index, a) => {
        console.log(index, item)
    })
    /* 
     0 "a"
     1 "b"
     2 "c"
    */
    
  2. map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个callback函数后返回的结果。

    let a2 = [1, 2, 3]
    let double = a2.map( (item, index,a2) => {
        return item*2
    })
    console.log(double) // [2, 4, 6]
    
  3. filter() 方法返回的数组元素是调用的数组的一个子集。传入的函数时用来逻辑判定的,该函数返回 true 或 false,如果返回值为true或能转化为true的值,那么传递给判断函数的元素就是这个子集的成员,它将被添加倒一个作为返回值的数组中。

    let number = [1, 2, 3, 4, 5, 6];
    let small = number.filter((value, index, number) => {
        return value < 4 && index % 2 ===0;
    })
    console.log(small); // [1, 2, 3]
    
  4. every() 方法测试数组的所有元素是否都通过了指定函数的测试。当且仅当针对数组中的所有元素调用判定函数都返回true,它才返回true。

    返回一个布尔值,当所有的元素都符合条件才返回true,否则返回false

    let a3 = [1, 2, 4, 10, 23]
    let result = a3.every( (element, index, a3) => {
        return element > 3
    })
    console.log(result) // false
    
  5. some() 方法测试数组中的某些元素是否通过由提供的函数实现的测试。当数组中至少有一个元素调用判定函数返回true,它就返回true

    返回一个布尔值,当有一个元素符合条件就返回true,否则返回false

    let result2 = a3.some( (element, index, a3) => {
        return element > 3
    })
    console.log(result2) // true
    
  6. reduce() 和 reduceRight() 这两个方法使用指定的函数将数组元素进行组合,生成单个值。

    返回值: 函数累计处理的结果

    let a4 = ['a', 'b', 'c']
    let a4str = a4.reduce( (a, b) => {
        return a + b
    })
    console.log(a4str) // abc
    
    // reduceRight() 是反方向
    let a4str2 = a4.reduce( (a, b) => {
        return a + b
    }) // cba
    
  7. indexof() 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

    返回 首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1 。第二个参数代表开始查找的位置

    let a5 = [1, 4, 5, 8]
    a5.indexOf(1) // 0
    a5.indexOf(4, 2) // -1
    a5.indexOf(5, 1) // 2
    
  8. lastIndexOf() 跟indexOf()查找方向相反,方法返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1。

    返回数组中最后一个符合元素的索引,如未找到返回-1

    let array = [2,5,9,2];
    array.lastIndexOf(7) // -1
    array.lastIndexOf(2,4) // 3
    array.lastIndexOf(2,3) // 3
    
  9. includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。

    解决不能查找 NaN的问题,返回一个布尔值,根据情况,如果包含则返回 true,否则返回false。

    [1, 2, 3].includes(2);     // true
    [1, 2, 3].includes(4);     // false
    [1, 2, NaN].includes(NaN); // true
    
  10. find() 和 findIndex() find 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。findIndex 方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。

find查找数组中第一个符合条件的值,如果查找到,立即返回,不再向下进行。否则返回 undefined。findIndex会立即返回该元素的索引。如果回调从不返回真值,或者数组的length为0,则findIndex返回-1。

```
let a = [1, -4, -5, 10].find((n) => n < 0); 
let b = [1, 4, -5, 10].findIndex((n) => n < 0); // 返回索引2
```
  1. keys() 方法返回一个新的Array迭代器,它包含数组中每个索引的键。

```
var array1 = ['a', 'b', 'c'];
var iterator = array1.keys(); 

for (let key of iterator) {
  console.log(key); // expected output: 0 1 2
}
```
  1. values() 方法返回一个新的Array迭代器,它包含数组中每个索引的值。

```
let iterator2 = array1.values()
for (const item of iterator2) {
    console.log(item) // a b c
}
```

原文链接:https://segmentfault.com/a/1190000015955287

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-37679.html

文章标题:数组七十二变

相关文章
js实现数组转换成json
js实现数组转换成json function arrayToJson(o) { var r = []; if (typeof o == &quot;string&quot;) return &quot;\&quot;&quo...
2017-03-25
JavaScript实现数字数组正序排列的方法
本文实例讲述了JavaScript实现数字数组正序排列的方法。分享给大家供大家参考。具体如下: JS数组的sort方法支持一个函数作为参数,下面的代码演示了JS数组如何实现数字的正序排列 &lt;!DOCTYPE html&gt; &lt;...
2017-03-22
JavaScript中数组继承的简单示例
在写一些库时经常会用到树结构的数据,而且一些树形结构的数据对从根到叶的路径获取需求非常高。比如一个站点的整个路由表就是一棵这样的树,它的「路径」实际上就是 URL 中的 path 部分。所以我好几次都用了丧心病狂的数组继承去实现,下面给大家...
2017-03-27
在JavaScript中操作数组之map()方法的使用
JavaScript 数组map()方法创建一个新的数组使用调用此数组中的每个元素上所提供的函数的结果。 语法 array.map(callback[, thisObject]); 下面是参数的详细信息: callback : 从当前的...
2017-03-24
JavaScript获取两个数组交集的方法
本文实例讲述了JavaScript获取两个数组交集的方法。分享给大家供大家参考。具体如下: 这里传入的数组必须是已经排过序的 &#x2F;* finds the intersection of * two arrays in a sim...
2017-03-24
javascript检测两个数组是否相似
JS要比较两个数组是否有相同的元素,即两个数组所有元素都相同,但元素的顺序不一定一致。只就需要先将数组进行排序,再比较两个数组是否相等。 &lt;!DOCTYPE html PUBLIC &quot;-&#x2F;&#x2F;W3C&#x2...
2017-03-23
javascript字符串与数组转换汇总
本文实例介绍了javascript中字符串和数组的相互转换方法,分享给大家供大家参考,具体内容如下 字符串和数组的相互转换操作是非常的重要的,因为在实际编码过程中会经常用到,所以这是必须要掌握的知识点,当然这个知识点并不难,知道了就永远知道...
2017-03-23
JavaScript对数组进行随机重排的方法
本文实例讲述了JavaScript对数组进行随机重排的方法。分享给大家供大家参考。具体如下: 这里提供了两个方法对数组进行随机重排。 &lt;script&gt; var count = 100000,arr = []; for(var i...
2017-03-27
JavaScript将一个数组插入到另一个数组的方法
本文实例讲述了JavaScript将一个数组插入到另一个数组的方法。分享给大家供大家参考。具体分析如下: 这段JS代码可以通过Array.prototype.push.apply方法将一个数组插入到另外一个数组,下面的代码将数组b插入到a ...
2017-03-21
JavaScript数组迭代器实例分析
本文实例讲述了JavaScript数组迭代器用法。分享给大家供大家参考。具体如下: 这里注意:如果数组中有0、false、&quot;&quot;、null、NaN迭代器将会停止 function createIterator(x) { ...
2017-03-24
回到顶部