We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
forEach() 方法对数组的每个元素执行一次提供的函数。
// 直接上代码 let arr = ['lee', 26, 'male', true, undefined]; arr.forEach((value, index, arrSelf) => { console.log(value, index); })
// 关于thisArg直接搬了MDN上的例子 function Counter() { this.sum = 0; this.count = 0; } Counter.prototype.add = function(array) { array.forEach(function(entry) { this.sum += entry; ++this.count; }, this); //console.log(this); }; var obj = new Counter(); obj.add([1, 3, 5, 7]); obj.count; // 4 === (1+1+1+1) obj.sum; // 16 === (1+3+5+7)
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
let arr = [2, 4, 6, 8]; let newarr = arr.map((value, index, arrSelf) => { return value * 2; }) console.log(newarr); // [4, 8, 12, 16]
filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
let arr = [2, 4, 6, 8]; let newarr = arr.filter((value, index, arrSelf) => { return value > 4; }) console.log(newarr); // [6, 8]
some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。数组中有至少一个元素通过回调函数的测试就会返回true;所有元素都没有通过回调函数的测试返回值才会为false。
let arr = [2, 4, 6, 8]; let newarr = arr.some((value, index, arrSelf) => { console.log(value); // 输出:2 4 6 return value > 4; }) console.log(newarr); // true
这个方法功能跟some()相反,every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。如果回调函数的每一次返回都为真值,返回 true ,否则返回 false。
let arr = [2, 4, 6, 8]; let newarr = arr.every((value, index, arrSelf) => { console.log(value); // 输出:2 return value > 3; }) console.log(newarr); // false
reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。不一定在数学意义上的叠加计算,这里叠加指:可以利用前遍历操作的结果到下一次遍历使用,重复叠加使用下去。
accumulator 累计器 currentValue 当前值 currentIndex 当前索引 array 数组
Uncaught TypeError: Reduce of empty array with no initial value
let sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) { return accumulator + currentValue; }, 0); console.log(sum);
这几个比计较类似,我放在了一起总结。
find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
let arr = [2, 4, 6, 8, 6]; let newarr = arr.find((value, index, arrSelf) => { console.log(value); // 2 4 6 return value == 6; }) console.log(newarr); // 6
findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。这个跟上面那个区别就是一个返回值,一个返回索引。
let arr = [2, 4, 6, 8, 6]; let newarr = arr.findIndex((value, index, arrSelf) => { console.log(value); // 2 4 6 return value == 6; }) console.log(newarr); // 2
includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false
let arr = [2, 4, 6, 8,]; let newarr = arr.includes(6, 2); console.log(newarr); // true
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
let arr = [2, 4, 6, 8,]; let newarr = arr.indexOf(6, 2); console.log(newarr); // 2
lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。
sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的。
很多情况我们的数组里面的元素需要排序,并且是数字的情况,如果按照默认的排序法,则排序出来的结果并不是我们想要的,比如以下代码:
const array1 = [1, 30, 4, 21, 100000]; array1.sort(); console.log(array1); // [1, 100000, 21, 30, 4]
所以我们一般需要给它提供一个回调函数,然后再来排序,比如升序
const array1 = [1, 30, 4, 21, 100000]; array1.sort((a, b) => { return a - b; }); console.log(array1); // [1, 4, 21, 30, 100000]
降序
const array1 = [1, 30, 4, 21, 100000]; array1.sort((a, b) => { return b - a; }); console.log(array1); // [100000, 30, 21, 4, 1]
join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组
slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。
这个是操作数组的尾部。
这个是操作数组的头部
reverse() 方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
forEach()
forEach() 方法对数组的每个元素执行一次提供的函数。
map()
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
filter()
filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
some()
some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。数组中有至少一个元素通过回调函数的测试就会返回true;所有元素都没有通过回调函数的测试返回值才会为false。
every()
这个方法功能跟some()相反,every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。如果回调函数的每一次返回都为真值,返回 true ,否则返回 false。
reduce()
reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。不一定在数学意义上的叠加计算,这里叠加指:可以利用前遍历操作的结果到下一次遍历使用,重复叠加使用下去。
Uncaught TypeError: Reduce of empty array with no initial value
举个MDN上累加求和的例子:
find()、findIndex()、indexOf()、includes()、lastIndexOf()
这几个比计较类似,我放在了一起总结。
find()
find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
findIndex()
findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。这个跟上面那个区别就是一个返回值,一个返回索引。
includes()
includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false
indexOf()
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
lastIndexOf()
lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。
sort()
sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的。
很多情况我们的数组里面的元素需要排序,并且是数字的情况,如果按照默认的排序法,则排序出来的结果并不是我们想要的,比如以下代码:
所以我们一般需要给它提供一个回调函数,然后再来排序,比如升序
降序
join()
join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
concat()
concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
splice()
splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组
slice()
slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。
push、pop()
这个是操作数组的尾部。
unshift()、shift()
这个是操作数组的头部
reverse()
reverse() 方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。
The text was updated successfully, but these errors were encountered: