List数组方法

        let arr1=[1,2,3,4,3];
        let arr2=["one"];
        let arr3;
        // arr1.pop()  // 删除数组最后一项元素,[1, 2, 3, 4]
        // arr1.push(0)  // 在数组末尾添加新元素,[1, 2, 3, 4, 3, 0]
        // arr1.shift()  // 删除数组第一项元素,[2, 3, 4, 3]
        // arr1.unshift(0)  // 在数组开始添加新元素, [0, 1, 2, 3, 4, 3]
        // arr3=arr1.slice(1,2)  // 截取数组,不改变原数组,slice(x,y),数组下标x < = 新数组 < 数组下标y,[2]
        // arr1.splice(1,2)  // splice(x,y," "),从数组下标x开始,删除y个元素,添加" ",[1, 4, 3]
        // arr1.reverse()  // 反序,[3, 4, 3, 2, 1]
        // arr1.sort((a,b)=>a-b)  // 排序,从小到大,[1, 2, 3, 3, 4],反之b-a
        // arr3=arr1.concat(arr2)  // 拼接数组,不改变原数组,[1, 2, 3, 4, 3, "one"]
        // arr3=[...arr1,...arr2]  // 拼接数组,不改变原数组,[1, 2, 3, 4, 3, "one"]
        // console.log(arr1.indexOf(9))    // 查找元素下标,有则返回下标,若无则返回-1,返回第一个查找到的元素,-1
        // console.log(arr1.lastIndexOf(3))    // 倒序查找元素下标,有则返回下标,若无则返回-1,返回第一个查找到的元素,4
        let str=arr1.join('-')   // 数组转string,以'-'隔开,1-2-3-4-3
        arr3=str.split('-')   // string转数组,以"-"分割,["1", "2", "3", "4", "3"]

基本方法 

一、filter 过滤,只返回符合条件的item,组成一个新数组

let arr = [1, 2, 3, 4, 5, 6]
    arr=arr.filter(item=>{
        return item>2
    })
console.log(arr) // arr=[3,4,5,6]

 二、map 返回指定值,无返回值时返回undefined,组成一个新数组

    let arr = [1, 2, 3, 4, 5, 6]
    arr = arr.map(item => {
        if(item>2){
            return item
        }
    })
    console.log(arr) // arr=[undefined, undefined, 3, 4, 5, 6]

 三、some 返回布尔值,有一个符合要求的值时中止循环返回true,全部符合时返回false

    let arr = [1, 2, 3, 4, 5, 6]
    arr = arr.some(item => {
        return item > 2
    })
    console.log(arr) // arr=true

 四、every 返回布尔值,全部符合要求时返回true,否则false

    let arr = [1, 2, 3, 4, 5, 6]
    arr = arr.every(item => {
        return item > 2
    })
    console.log(arr) // arr=false

 五、find 返回符合要求的第一个item,全都不符合时返回undefined

    let arr = [1, 2, 3, 4, 5, 6]
    arr = arr.find(item => {
        return item > 2
    })
    console.log(arr) // arr=3

活学活用

 

    var a = [1, 2, 4]
    var b = [3, 4]
    //交集
    var c = a.filter(function (v) { return b.indexOf(v) > -1 })
    console.log(c)  // [4]
    //差集
    var d = a.filter(function (v) { return b.indexOf(v) == -1 })
    console.log(d)  // [1,2]
    //并集
    var e = a.concat(b.filter(function (v) { return !(a.indexOf(v) > -1) }));
    console.log(e)  // [1,2,4,3]
    //数组对象差集
    var f = [{ id: 1, name: 'a' }, { id: 2, name: 'b' }]
    var g = [{ id: 1, name: 'a' }]
    var h = [...f].filter(x =>
        [...g].every(y => y.id !== x.id)
    )
    console.log(g)  // [{id:1,name:'a'}]
    // 判断数组a中的每个元素是否都在数组b中存在
    let i =
        a.every(v => {
            return b.includes(v)
        })
    console.log(i)  // false

 

 

 

posted @ 2020-03-07 22:42  惊蛰丶  阅读(522)  评论(0编辑  收藏  举报