美文网首页
迭代方法

迭代方法

作者: YoungEvita | 来源:发表于2018-03-07 10:17 被阅读0次
方法 参数 返回值
array.every(function(item, index, arr), thisValue) item(必需) - 当前元素值;
index(可选) - 当前元素索引;arr(可选) - 当前元素所属数组;
thisValue(可选) - 对象作为该执行回调时使用,传递函数,用在this的值。若省略,默认undefined
数组中所有元素满足条件时返回true,有一个元素不满足,返回false,且停止遍历。
array.some(function(item, index, arr), thisValue) 同上 数组中有一个元素满足条件时返回true,且停止遍历;所有元素不满足条件,返回false
array.filter(function(item, index, arr), thisValue) 同上 返回满足条件的所有元素,若没有满足条件的元素,返回空数组。
array.find(function(item, index, arr), thisValue) 同上 返回满足条件的第一个元素,找到之后即刻停止遍历,若找不到返回-1
array.map(function(item, index, arr), thisValue) 同上 返回每次函数调用结果的组成的数组
array.forEach(function(item, index, arr), thisValue) 同上 对数组中的每一项运行给的函数,无返回值

以上方法对空数组不做检测;
都不改变原有数组;
不支持break跳出遍历,也不支持return false跳出遍历。

  • 当遍历的数组为空数组时:
方法 返回值
every true
some false
filter [] (空数组)
find undefined
map [] (空数组)
forEach undefined

例子

// every 方法
var arr = [1, 2, 3, 4, 5];
var everyRes = arr.every(function(item, index, arr) {
    console.log(item); // 1
    return item > 2;
});
console.log(everyRes); // false

var everyEmpty = [].every(function(item, index, arr) {
    console.log(item); // 不会执行
    return item > 2;
})
console.log(everyEmpty); // true 

// some 方法
var arr = [1, 2, 3, 4, 5];
var someRes = arr.some(function(item, index, arr) {
    console.log(item); // 1 2 3
    return item > 2;
});
console.log(someRes); // true

var someEmpty = [].some(function(item, index, arr){
    console.log(item); // 不会执行
    return item >2;
});
console.log(someEmpty); // false
// filter 方法
var arr = [1, 2, 3, 4, 5];
var filterRes = arr.filter(function(item, index, arr) {
    console.log(item); // 1 2 3 4 5
    return item > 2;
});
console.log(filterRes); // [3, 4, 5]

var filterEmpty = [].filter(function(item, index, arr) {
    console.log(item); // 不会执行
    return item > 2;
});
console.log(filterEmpty); // []
// find 方法
var arr = [1, 2, 3, 4, 5];
var findRes = arr.find(function(item, index, arr) {
    console.log(item); // 1 2 3
    return item > 2;
});
console.log(findRes); // 3

var findEmpty = [].find(function(item, index, arr) {
    console.log(item); // 不会执行
    return item > 2;
})
console.log(findEmpty); // undefined
// map 方法
var arr = [1, 2, 3, 4, 5];
var mapRes = arr.map(function(item, index, arr) {
    console.log(item); // 1 2 3 4 5
    return item * 2;
});
console.log(mapRes); // [2, 4, 6, 8, 10]

var mapEmpty = [].map(function(item, index, arr) {
    console.log(item); // 不执行
    return item * 2;
});
console.log(mapEmpty); // []
// forEach 方法
var arr = [1, 2, 3, 4, 5];
var forEachRes = arr.forEach(function(item, index, arr) {
    console.log(item); // 1 2 3 4 5
    return item * 2;
});
console.log(forEachRes); // undefined

var forEachEmpty = [].forEach(function(item, index, arr) {
    console.log(item); // 不执行
    return item * 2;
});
console.log(forEachEmpty); // undefined

小试牛刀

1. 下面程序执行完之后result的值是多少?
var arr = [1, 2, 3];
var result = arr.forEach(function(item) {
  return item * 2;
});
A. [];
B. [0, 2, 4]
C. [2, 4, 6]
D. undefined
2. 下面程序执行之后result的值是多少?
var arr = [1, 2, 3];
var result = arr.map(parseInt);
A. ["1", "2", "3"]
B. [1, 2, 3]
C. [0, 1, 2]
D. other

相关文章

  • 迭代与生成器

    迭代器通过iter方法产生可迭代对象,可迭代对象用next方法进行迭代。iter方法返回self 只要函数定义体有...

  • 可迭代对象、迭代器、生成器

    可迭代对象 --> 迭代器 --> 生成器; 可迭代对象:实现了__iter__()方法的对象,该方法返回迭代对象...

  • 小结-Python-可迭代、迭代器和生成器的区别

    可迭代对象 可迭代对象指的是定义了_ _ iter _ _ 方法的对象,调用该方法会返回一个迭代器对象。 可迭代对...

  • 9-1 自定义迭代器

    迭代对象和迭代器是实现了 __iter__ 方法的 而迭代器是额外还需要实现了 __next__ 方法的 可迭代对...

  • python 实现可迭代对象和迭代器对象

    列表和字符串都是可迭代对象。 可迭代对象具有 __iter__ 方法或者 __getitem__ 方法。迭代器对象...

  • 迭代方法

    以上方法对空数组不做检测;都不改变原有数组;不支持break跳出遍历,也不支持return false跳出遍历。 ...

  • 迭代方法

    ES5为数组定义了5个迭代的方法。每个方法都接收两个参数: 1.every(); 2.some(); 3.filt...

  • 迭代方法

    迭代方法运行的函数都会接受三个参数: 1、数组项的值(item)2、该项在数组中的位置(index)3、数组对象本...

  • C#迭代器与LINQ查询操作符

    简单实例: 迭代器方法或 get 访问器可对集合执行自定义迭代。 迭代器方法使用 yield return 语句返...

  • 101. 对称二叉树

    解法 递归方法如下: 迭代方法

网友评论

      本文标题:迭代方法

      本文链接:https://www.haomeiwen.com/subject/jtzdfftx.html