数组

作者: 白菜_37e2 | 来源:发表于2019-07-04 12:02 被阅读0次

    forEach (js v1.6)

    map()— —更新数组

    filter()、includes()、find()、findIndex()— —筛选(删除)数组

    some()、every()— —判断数组

    reduce()— —叠加数组

    isNaN() 函数用于检查其参数是否是非数字值。

    Concat() 连接两个或更多数组

    splice(index,len,[item])删除元素,并向数组添加一个新元素。

    Slice() 从某个已有的数组返回选定的元素

    Join() 把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分割

    push() 在数组后添加元素,并返回新的长度

    unshift()在数组最前添加元素

    pop() 删除数组最后一个元素并返回该元素的值

    reverse()颠倒数组中元素的顺序

    shift() 删除并返回数组中第一个元素

    sort() 对数组元素进行排序

    toSource() 返回该对象的源代码

    toString() 把数组转换为字符串并返回结果

    toLocaleString() 把数组转换为本地数组,并返回结果

    valueOf() 返回对象的原始值


    forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身。

    [1,2,3,4].forEach(console.log);

    // 结果:// 1, 0, [1, 2, 3, 4]// 2, 1, [1, 2, 3, 4]// 3, 2, [1, 2, 3, 4]// 4, 3, [1, 2, 3, 4]

    小案列:

    var sum=0;

    [1,2,3,4].forEach(function(item,index,array) {

    console.log(array[index] ==item);//truesum+=item;

    });

    alert(sum);//10

    更进一步,forEach除了接受一个必须的回调函数参数,还可以接受一个可选的上下文参数(改变回调函数里面的this指向)(第2个参数)。

    array.forEach(callback,[ thisObject])

    例子:

    var database = { 

     users: ["张含韵", "江一燕", "李小璐"], 

     sendEmail: function (user) {  

      if (this.isValidUser(user)) {  

        console.log("你好," + user);   

     } else {  

        console.log("抱歉,"+ user +",你不是本家人");    } 

     }, 

     isValidUser: function (user) {

        return /^张/.test(user);  }

    };

    // 给每个人法邮件

    database.users.forEach(// database.users中人遍历

    database.sendEmail,// 发送邮件

    database// 使用database代替上面标红的this

    );

    // 结果:

    // 你好,张含韵

    // 抱歉,江一燕,你不是本家人

    // 抱歉,李小璐,你不是本家

    map()— —更新数组

    var arr = [1,2,3,4,5] ;

    var newArr = arr.map(function(item,index){

    return item*2 ;        //操作更新数组

    })

    console.log(newArr);                  //打印新数组

    console.log(arr);                     //打印原数组,map()没有改变原数组

    var newArr2 = newArr.map(function(item,index){

    return `<li>${item}</li>` ;

                  //ES6语法,模版字符串,波浪号键,变量使用${}

          //["<li>NaN</li>", "<li>NaN</li>", "<li>NaN</li>", "<li>NaN</li>", "<li>NaN</li>"]

    })

    console.log(newArr2.join('')); //数组.join(),把数组每一项连接起来,形成字符串string

    console.log(newArr); 

    arr.filter()

    1、创建新数组

    2、不改变原数组

    3、输出的是判断为true的数组元素形成的新数组

    4、回调函数参数,item(数组元素)、index(序列)、arr(数组本身)

    5、使用return操作输出,会循环数组每一项,并在回调函数中操作

    var arr = [1,2,3,4,5] ;

    var newArr = arr.filter(function(item,index){

    return item>2&&item<5 ;         //根据判断为true来遍历循环添加进新数组

    })

    console.log(newArr);                            //打印新数组

    console.log(arr);     

    相关文章

      网友评论

        本文标题:数组

        本文链接:https://www.haomeiwen.com/subject/qxrlhctx.html