js之Array的方法

106 阅读3分钟

数组方法()

1.不影响原数组的方法
concat()   --- 将指定数组的元素添加到了某一数组的后面,并返回了一个新的数组
join()     ---方法把 数组中的所有元素转换为一个字符串
slice()    ---切割字符串 返回一个索引和另一个索引之间的字符串

forEach()      ---通过指定函数处理数组的每个元素,无返回值

map()      ---通过指定函数处理数组的每个元素,并返回处理后的数组
fliter()   ---遍历数组,fliter会从原数组筛选符合的条件元素创建一个新的数组。filter() 不会对空数组进行检测
find()     ---方法返回通过测试(函数内判断)的数组的第一个元素的值,否则为undefine
findIndex()---筛选出数组内部第一个符合条件的值的index下标

arr.reduce((prev,cur)=>{},init)  ---方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,
最终计算为一个值。init: 表示初始值
array.reduce(callback(accumulator, currentValue, currentIndex, array), initialValue)
#### 参数说明:

1.  **`callback`** - 对每个数组元素执行的函数,包含四个参数:

    -   `accumulator`(累积器):累积回调的返回值。初始值由 `initialValue` 提供,或为数组第一个元素(无 `initialValue` 时)
    -   `currentValue`(当前值):正在处理的当前元素
    -   `currentIndex`(可选):当前元素的索引
    -   `array`(可选):调用 `reduce` 的原始数组

1.  **(可选)** :作为第一次调用回调函数时的第一个参数值。**强烈建议始终提供**,以避免空数组报错或逻辑错误。
var arr1 = ['a'];
var arr2 = ['b'];
var arr3 = arr1.concat(arr1,arr2);   // ['a'] , ['b'] ,  ['a', 'a', 'b']

var arr = ["a", "b", "c"];
var des = arr.join();  // 'a,b,c'
var des1 = arr.join('');  // 'abc'
arr.slice(0,2)  // ['a','b']

arr.forEach(item => item)  // undefined

arr.map(item => item)  // ['a', 'b', 'c']

arr.filter((item)=>{
    return item === "a"
})  // ['a']
arr.filter((item)=>{
    return item === "a"
})  // ['a']
arr.find((item)=>{
   return  item === 'a'
})  // 'a'
arr.findIndex(item => {
   return item === 'b'
})  // 1
arr.reduce((pre,cur)=>{
    return pre +cur
},'init-')  // 'init-abc'

const people = [
     { name: 'Alice', age: 25 },
     { name: 'Bob', age: 30 },
]
const peopleMap = people.reduce((acc, person) => {
     acc[person.name] = person.age
  return acc // 必须返回累积器!
}, {})
console.log(peopleMap) // 输出: { Alice: 25, Bob: 30 }
2.影响原数组的方法
pop()      ---删除数组的最后一个元素               返回删除的元素。
push()     ---向数组的末尾添加一个或更多元素        返回新的长度。
shift()    ---删除数组的第一个元素                 返回数组的第一个元素
unshift()  ---向数组的开头添加一个或更多元素        返回新的长度。
reverse()  ---反转数组的元素顺序。                 返回新数组
sort()     ---对数组的元素进行排序。                返回新数组
splice()   ---用于插入、删除或替换数组的元素。      返回切割的数组
var arr = [1, 2, 3, 4, 5];
arr.pop() //5
console.log(arr) //[1, 2, 3, 4]

var arr = [1, 2, 3, 4, 5];
arr.push(6) // 6
console.log(arr) //[1, 2, 3, 4, 5, 6]

var arr = [1, 2, 3, 4, 5];
arr.shift() // 1
console.log(arr) //[2, 3, 4, 5, 6]

var arr = [1, 2, 3, 4, 5];
arr.unshift(0) // 6
console.log(arr) //[0, 1, 2, 3, 4, 5]

var arr = [1, 2, 5, 4, 3];
arr.sort() // [1, 2, 3, 4, 5]
console.log(arr) //[1, 2, 3, 4, 5]

var arr = [1, 2, 5, 4, 3];
arr.reverse() // [3, 4, 5, 2, 1]
console.log(arr) //[3, 4, 5, 2, 1]

var arr = [1, 2, 3, 4, 5];
arr.splice(0,2) // [1, 2]
console.log(arr) //[3, 4, 5]