数组API

forEach无返回值,(返回值是undefined)
 var arry=[3,45,0]
arry.forEach(function(item,index){
 //遍历数组所有元素
}
)
 var arry=[3,45,0]
var result=arry.every(function(item,index){
           //判断数组所有元素是否都满足一个条件
           if (item<5){
               return true
               }
      //    else{
    //              return false;
//}     
  //不用写else,不满足条件,会直接返回false   
})
console.log(result)     //false
 var arry=[3,5,0]
var result=arry.some(function(item,index){
       //判断数组中只要有一个元素满足条件即可
           if (item<5){
               return true
               }
 })
console.log(result)      //true     
 var arry=[6,5,7,8]
var result=arry.map(function(item,index){
       //将元素重新组装,并返回
         
               return '<b> '+item+'</b>'
              
 })
console.log(result)
// ["<b> 6</b>", "<b> 5</b>", "<b> 7</b>", "<b> 8</b>"]
 var arry=[6,5,7,8]
var result=arry.filter(function(item,index){
       //通过某一条件过滤数组
         
            if(item>6){
    return true
     }
              
 })
console.log(result)
//[7, 8]

 sort会改变原数组

 var arry=[3,5,0]
var result=arry.sort(function(a,b){
       //数组从小到大排序
          return a-b
//数组从大到小排序
        // return b-a
 })
console.log(result)     //[0,3,5]
arry  //[0,3,5]

filter、map、every、foreach、some都不会改变原数组。

reduce 不会改变原数组

var numbers = [1,2,3];
 
function getSum(total, num) {
    return total + num;
}
var arr=numbers.reduce(getSum);
arr //6

splice: 会改变原数组 (开始位置,删除几个(不传则默认到结束位置),item1,.....,添加的元素,itemX)

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

var bb=arr.spilce(2); //不传第二个参数则默认截取到末位

arr//[1, 2]  
bb//[3,4,5]

当第二个参数穿0时

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

var bb=arr.splice(2,0); //则不截取,得到空数组

arr// [1, 2, 3, 4, 5]
bb//[ ]

当增加数据时

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

var bb=arr.splice(2,1,"增加","w"); //则不截取,得到空数组

arr// [1, 2, "增加", "w", 4, 5]
bb//[3 ]

slice(startend) 不会改变原数组

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest1 = fruits.slice(-3,-1); // 截取倒数第三个(包含)到倒数第一个(不包含)的两个元素
var myBest2 = fruits.slice(-3);  // 截取最后三个元素
myBest1 //["Lemon", "Apple"]
myBest2 //  ["Lemon", "Apple", "Mango"]
fruits // ["Banana", "Orange", "Lemon", "Apple", "Mango"]

concat() 不会改变原数组  可以连接好多个

var arr1 = ["Cecilie", "Lone"];
var arr2 = ["Emil", "Tobias", "Linus"];
var arr3 = ["Robin", "Morgan"];
var myChildren = arr1.concat(arr2, arr3);
arr1    //  ["Cecilie", "Lone"]
myChildren   //["Cecilie", "Lone", "Emil", "Tobias", "Linus", "Robin", "Morgan"]

 

 

posted @ 2018-03-30 10:47  sunmarvell  阅读(142)  评论(0编辑  收藏  举报