0
点赞
收藏
分享

微信扫一扫

JS数组常用的方法

RockYoungTalk 2022-01-23 阅读 184

【会改变原数组】

1. Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变

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

2. Array.pop(),删除并返回数组最后一个元素,若该数组为空.泽返回undefind。原数组改变

let arr = [1,2,3,4]
let del = arr.pop()
console.log(del, arr)  // 4  [1,2,3]

3. Array.unshift(),向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变

let arr = [1,2,3,4]
let res = arr.unshift('0','你好')
console.log(res)  // 6
consloe.log(arr)  // ['0','你好',1,2,3,4]

4. Array.shift(),删除数组的第一项,并且返回第一个元素的值.若盖数组为空,泽返回undefined。原数组改变

let arr = ['你好',1,2,3,4]
let res = arr.shift()
console.log(res)  // 你好
console.log(arr)  // [ 1, 2, 3, 4]

5. Array.revrse(),将数组倒叙.改变原数组

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

6. Array.sort(),对数组进行排序.按照字符串UniCode码

①从小到大排序

let arr = [1, 2, 99, 67, 88]
let sortNum = function (a, b) { return a-b }
console.log(arr.sort(sortNum))  // [1, 2, 67, 88, 99]

②从大到小排序

let arr = [1, 2, 99, 67, 88]
let sortNum = function (a, b) { return b-a }
console.log(arr.sort(sortNum))  // [99, 88, 67, 2, 1]

③按照数组对象中的某个值进行排序

let arr = [
    {name:'张三',age:'18'},
    {name:'李四',age:'14'},
    {name:'王五',age:'26'}
]

function compare(param){
    return function sortAge(a,b){
        return a[param]-b[param]
    }
}
console.log(arr.sort(compare('age')))

7. Array.splice(index,howmany,arr1,arr2...),删除元素并添加元素,从index位置开始删除howmany个元素,并将arr1、arr2...数据从index位置依次插入.howmany为0时,则不删除元素, 返回删除的数组

原数组改变.

let arry = ['1','2','3','4','5','6']
console.log(arry.splice(2,2,'测试','ceshi'))  // ['3', '4']
console.log(arry)  // ['1', '2', '测试', 'ceshi', '5', '6']

 

【原数组不改变】 

1. Array.join(),将数组的每一项用指定字符串连接成一个字符串.默认连接符是","逗号

let arr = [1,2,3,4]
let str1 = arr.join()
let str2 = arr.join('-')
console.log(str1)  // 1,2,3,4
console.log(str2)  // 1-2-3-4

2. Array.concat(arr1,arr2...),合并两个或者多个数组,生成一个新的数组,原数组不改变

let arr = [1,2,3,4]
let arr1 = ['a','b','c']
let arr2 = ['A','B','C']
let res = arr.concat(arr1,arr2)
console.log(res)  // [1, 2, 3, 4, 'a', 'b', 'c', 'A', 'B', 'C']

3.Array.map(function),原数组的每一项执行函数后,返回一个新的数组.原数组不改变

注意与forEach的区别

4. Array.forEarch(function),用于调用数组的每个元素,并将元素传递给回调函数.原数组不改变

(注意直接打印Array.forEach,结果为undefind).

5. Array.slice(start,end),从start开始,end之前结束,顾前不顾后.如果不给end值,从start开始到数组结束.start可以给负值,-1表示数组最后位置,-2表示倒数第二个,以此类推.

let arry = [1,2,3,4]
console.log(arry.slice(-3,-1))  // [2, 3]

6. Array.filter(function),过滤数组中,符合条件的元素返回一个新的数组.原数组不改变

let arr = [1,2,3,4,5]
console.log(arr.filter(x=>x>3))  // [4, 5]
console.log(arr)  // [1, 2, 3, 4, 5]

7. Array.every(function),对数组中的每一项进行判断,若都符合则返回true,否则返回false

8. Array.some(function),对数组中的每一项进行判断,若都不符合则返回false,否则返回true

9. Array.reduce(function),reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值

let arr = [1,2,3,4,5]
let aa = ['1',2,3,4,5]
console.log(arr.reduce((a,b)=>a+b))  // 15
console.log(aa.reduce((a,b)=>a+b))  // 12345
举报

相关推荐

0 条评论