數(shù)組新API


IndexOf

indexOf() 方法返回在該數(shù)組中第一個找到元素位置,如果它不存在則返回-1;
不用indexOf() 時

var arr = ['apple', 'orange', 'pear'];
var index = 0;
for(var i = 0; i < arr.length; i++){
  if(arr[i] == 'orange'){
    index = i;
  }
}
console.log(index);

使用后

var arr = ['apple', 'orange', 'pear'];
console.log(arr.indexOf('orange'));

lastindexOf()

lastIndexOf() 方法返回在該數(shù)組中最后一個找到的元素位置,和indexof相反。

every()

every()可是檢查數(shù)組中的每一項是否符合條件
使用for:

var ary = [12, 23, 24, 42, 1];
var result = function() {
  for(var i = 0; i < ary.length; i++){
    if(ary[i < 0]){
      return false;
    }
  }
  return true;
}
console.log(result()); //全部滿足,返回true

使用every:

var ary = [12,23,24,42,1];
var result = ary.every(function(item, index){
  return item > 0
})
console.log(result);

some()

some()可以檢查數(shù)組中是否有某一項符合條件
使用for:

var ary = [12,23,-24,42,1];
var result = function() {
  for(var i = 0; i < arr.length; i++){
    if(arr[i] < 0){
      return true
    }
  }
  return false;
}
console.log(result());  //有一項小于0,返回true

使用some:

var ary = [12,23,-24,1];
var result = ary.some(function(item, index){
  return itme < 0;
})
console.log(result);

filter

filter() 方法創(chuàng)建一個新的匹配過濾條件的數(shù)組
不用filter() 時

var arr = [1,2,3,4,5,6,7,8,9]
var newArr = [];

for(var i = 0; i < arr.length; i++){
  if(arr[i] % 2){
    newArr.push(arr[i]);
  }
}
console.log(newArr);

使用filter()后

var arr = [1,2,3,4,5,6,7,8,9];
var newArr = arr.filter(function(item){
   return item % 2
});
console.log(newArr);

map

map() 對數(shù)組的每個元素進行一定操作后,返回一個新的數(shù)組
不用map()時

var oldArr = [{first_name: 'shuai'},{first_name:'dan'}];
var newArr;
for(var i = 0; i < oldArr.length; i++){
  var item = oldArr[i];
  item.last_name = 'zhang';
  newArr[i] = item;
}
console.log(newArr());

使用map()時

var oldArr = [{first_name: 'shuai'},{first_name:'dan'}];
var newArr = oldArr.map(function(item, index){
  item.last_name ='zhang';
  return item;
});
console.log(newArr);

reduce

reduce()可以實現(xiàn)一個累加器的功能,將數(shù)組的每個值(從左到右)將其降低到一個值。
例如:統(tǒng)計一個數(shù)字中有多少個不重復的單詞。
不使用reduce時

var arr = ['apple','orange','apple'];
var obj = {};
for(var i = 0; i < arr.length; i++){
  var item = arr[i];
  obj[item] = (obj[item] + 1) || 1;
}
console.log(obj);

使用reduce()后

var arr = ['apple', 'orange', 'apple'];
var obj = arr.reduce(function(prev, next){
   prev[next] = (prev[next] + 1) || 1;
   return prev;
}, {});
console.log(obj);

reduce(callback, initialValue)會傳入兩個變量?;卣{(diào)函數(shù)(callback)和初始值(initialValue)。假設(shè)函數(shù)它有個傳入?yún)?shù),prev和next,index和array。prev和next你是必須要了解的。
一般來講prev是從數(shù)組中第一個元素開始的,next是第二個元素。但是當你傳入初始值(initialValue)后,第一個prev將是initivalValue,next將是數(shù)組中的第一個元素。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容