数组

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 `

  • ${item}
  • ` ;

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

          //["

  • NaN
  • ", "
  • NaN
  • ", "
  • NaN
  • ", "
  • NaN
  • ", "
  • NaN
  • "]

    })

    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);     

    你可能感兴趣的:(数组)