some数组的方法
一真即真 只要有一个是真 其后面的元素将不再遍历。
遍历数组中的每一个成员 让其去执行回调函数
(forEach 没有返回值 ) some有返回值 返回值是bool
返回值为true 表示某一个成员满足了 回调中设置的过滤规则 此时会终止整个循环
返回值为false 表示这个数组中没有符合条件的成员 则返回false
every
总结:一假即假 ,而且只要有一个元素是假,其后面的元素将不再遍历。
`var` `computers = [`
`{ name:` `"mac"``, ram: 32 },`
`{ name:` `"mac"``, ram: 8 },`
`{ name:` `"IBM"``, ram: 16 },`
`{ name:` `"IBM"``, ram: 64 }`
`];`
`//判断每一个元素的ram是否都大于16`
`var` `everyBoolan = computers.every(``function``(item) {`
`return` `item.ram > 16;`
`});`
`console.log(everyBoolan);` `//结果:false`
`//判断元素的ram是否都大于16`
`var` `someBoolean = computers.some(``function``(item) {`
`return` `item.ram > 16;`
`});`
`console.log(someBoolean);``//结果: true`
findIndex 数组的方法
遍历数组中的每一个成员 让其去执行回调函数
查找索引 返回值是一个数字 也就是索引值
如果成员满足回调函数的条件 则返回第一个满足条件成员的索引 同时 终止整个循环
如果没有满足条件的 则返回-1
filter 数组的方法
遍历数组中的每一个成员 让其去执行回调函数
filter数组的方法 返回值是一个新的数组
当数组中的成员 去执行回调函数中的条件时 如果满足条件
那么这个成员会被添加到一个新的数组中
没有符合条件的返回空数组
注意 filter方法对原数组没有影响
Array.includes()函数
判断数组元素中是否包含某个字符串或数字
它直接返回true或者false表示是否包含元素,对NaN一样能有有效。
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]
console.log( arr1.includes('c'))//true
console.log('%s', arr1.includes(NaN)) //true
Find方法
返回符合条件的第一个数组元素值,如果没有符合条件的则返回undefined。
const m = messages.find((msg)=> msg.id===id)
reduce
arr.reduce(callback,[initialValue])
callback (执行数组中每个值的函数,包含四个参数)
1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
2、currentValue (数组中当前被处理的元素)
3、index (当前元素在数组中的索引)
4、array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数。)
var arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
})
console.log(arr, sum);
数组的map方法
数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维数组。该方法返回一个新数组,对原数据没有影响。
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
map()和forEach()
它们之间的主要区别在于是否有返回值,所以你会希望使用 map
来制作一个新的数组,而使用 forEach
只是为了映射到数组上。
数组的flat(),flatMap()
float()
flat()方法将子数组的成员取出来,添加在原来的位置。
flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。
[1, 2, [3, [4, 5]]].flat()
// [1, 2, 3, [4, 5]]
[1, 2, [3, [4, 5]]].flat(2)
// [1, 2, 3, 4, 5]
如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。
[1, [2, [3]]].flat(Infinity)
// [1, 2, 3]
如果原数组有空位,flat()方法会跳过空位。
[1, 2, , 4, 5].flat()
// [1, 2, 4, 5]
Array.flatMap
flatMap()方法对原数组的每个成员执行一个函数,相当于执行Array.prototype.map(),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。
// 相当于 [[2, 4], [3, 6], [4, 8]].flat()
[2, 3, 4].flatMap((x) => [x, x * 2])
// [2, 4, 3, 6, 4, 8]
flatMap()只能展开一层数组。
splice
splice从数组中添加或者删除项目,返回被删除的项目,同时也会改变原数组。
splice(index,howmany,item1,...itemX)
splice是JS中数组功能最强大的方法,它能够实现对数组元素的删除、插入、替换操作,返回值为被操作的值。
splice删除: color.splice(1,2) (删除color中的1、2两项);
splice插入: color.splice(1,0,'brown','pink') (在color键值为1的元素前插入两个值);
splice替换: color.splice(1,2,'brown','pink') (在color中替换1、2元素);
- index参数:必须,整数,规定添加或者删除的位置,使用负数,从数组尾部规定位置。
- howmany参数:必须,要删除的数量,如果为0,则不删除项目。
- tem1,...itemX参数:可选,向数组添加的新项目。
1指定位置增加项
var array = [1,2,3,4,5];
var array2 = array.splice(1,0,["新增","xinzeng"]);
// 下标1的位置,增加添加的项
// array [1,["新增","xinzeng"],2,3,4,5]
// array2 []
2删除指定位置,并新增项
var array = [1,2,3,4,5];
var array2 = array.splice(1,1,["新增","xinzeng"]);
// 下标1的位置,删除1项,并新增1项
// array [1,["新增","xinzeng"],3,4,5]
// array2 [2]
3 splice(3)
var array = [1,2,3,4,5];
var array2 = array.splice(3);
// 从下标3的位置开始删除
// array [1,2,3]
// array2 [4,5]
slice
slice是指定在一个数组中的元素创建一个新的数组,即原数组不会变
var color = new Array('red','blue','yellow','black'); var color2 = color.slice(1,2);
alert(color); //****输出** **red,blue,yellow,black**
alert(color2); //****输出** **blue;注意:这里只有第二项一个值
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。