數(shù)組迭代方法匯總

之前就像總結(jié)的 但是看了一些資料 覺得內(nèi)容很多就沒有來整理雷激,覺得腦子過一遍差不多。結(jié)果沒記住 sad
查看數(shù)組的哪些方法可以直接console.dir(Array.prototype)

數(shù)組的迭代方法

let arr = [1,2,3,4,5,6]

  • Array.forEach() 值:一般用于遍歷
 //不能 return 
arr.forEach((v,i,a)=>{
})
  • Array.map() 值:返回處理過的數(shù)組
    不會更改原來的函數(shù)瑟押,return 會返回新的數(shù)組
var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value) {
  return value * 2;
}
  • Array.filter() 值:返回滿足條件的數(shù)組
    方法創(chuàng)建一個包含通過測試的數(shù)組元素的新數(shù)組概作。
var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
  • Array.every 值返回true或者false
    檢查所有的數(shù)組值是否通過測試,
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
  • Array.some 值:返回true false 有一個滿足就會返回true
    檢查數(shù)組值是否通過了測試
var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
  • Array.find()
    方法返回通過測試函數(shù)的第一個數(shù)組元素的值薄湿。
var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
  • Array.findIndex():
    傳入一個回調(diào)函數(shù),找到數(shù)組中符合當前搜索規(guī)則的第一個元素枣抱,返回它的下標,終止搜索
const arr = [1, "2", 3, 3, "2"]
console.log(arr.findIndex(n => typeof n === "number")) // 0
  • Array.indexOf()
    indexOf() 方法在數(shù)組中搜索元素值并返回其位置辆床。
    從0位置開始 從0開始計數(shù)
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");
  • Array.lastIndexOf()
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");
  • Array.reduce()
    應(yīng)用:
    去重
let arr = [1, 2, 2, 4, null, null].reduce((accumulator, current) => {
    return accumulator.includes(current) ? accumulator : accumulator.concat(current);
}, []);

數(shù)組扁平化
數(shù)組求和
計算出現(xiàn)的次數(shù)

  let names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];

      let nameNum = names.reduce((pre,cur)=>{
        if(cur in pre){
          pre[cur]++
        }else{
          pre[cur] = 1 
        }
        return pre
      },{})
      console.log(nameNum); //{Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}
  • Array.reduceRight()
    相同:
    和其它函數(shù)不同之處在于第一個值是上一次便利的值

不同:
和reduce:從左向右邊佳晶,reduceRight:從右邊向左邊

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}
  • for.....in
let names = ['Tom','Jerry']
for(let i in names){
console.log(arr[i]);
}
  • values() 返回鍵值對的鍵
//數(shù)組
const arr = ['a', 'b', 'c'];
for(let v of arr.values()) {
  console.log(v)
}
//'a' 'b' 'c'

//Set
const arr = new Set(['a', 'b', 'c']);
for(let v of arr.values()) {
  console.log(v)
}
// 'a' 'b' 'c'

//Map
const arr = new Map();
arr.set('a', 'a');
arr.set('b', 'b');
for(let v of arr.values()) {
  console.log(v)
}
// 'a' 'b'

keys 返回鍵值對的 鍵值

//數(shù)組
const arr = ['a', 'b', 'c'];
for(let v of arr.keys()) {
  console.log(v)
}
// 0 1 2

//Set
const arr = new Set(['a', 'b', 'c']);
for(let v of arr.keys()) {
  console.log(v)
}
// 'a' 'b' 'c'

//Map
const arr = new Map();
arr.set('a', 'a');
arr.set('b', 'b');
for(let v of arr.keys()) {
  console.log(v)
}
// 'a' 'b'
  • includes
    判斷數(shù)組中是否存在該元素,參數(shù):查找的值讼载、起始位置轿秧,可以替換 ES5 時代的 indexOf 判斷方式。indexOf 判斷元素是否為 NaN咨堤,會判斷錯誤菇篡。
var a = [1, 2, 3];
a.includes(2); // true
a.includes(4); // false
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市一喘,隨后出現(xiàn)的幾起案子驱还,更是在濱河造成了極大的恐慌,老刑警劉巖凸克,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件议蟆,死亡現(xiàn)場離奇詭異,居然都是意外死亡萎战,警方通過查閱死者的電腦和手機咐容,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚂维,“玉大人戳粒,你說我怎么就攤上這事∧癯” “怎么了享郊?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵览祖,是天一觀的道長孝鹊。 經(jīng)常有香客問我,道長展蒂,這世上最難降的妖魔是什么又活? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮锰悼,結(jié)果婚禮上柳骄,老公的妹妹穿的比我還像新娘。我一直安慰自己箕般,他們只是感情好耐薯,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般曲初。 火紅的嫁衣襯著肌膚如雪体谒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天臼婆,我揣著相機與錄音抒痒,去河邊找鬼。 笑死颁褂,一個胖子當著我的面吹牛故响,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颁独,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼彩届,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了誓酒?” 一聲冷哼從身側(cè)響起惨缆,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎丰捷,沒想到半個月后坯墨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡病往,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年捣染,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片停巷。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡耍攘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出畔勤,到底是詐尸還是另有隱情蕾各,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布庆揪,位于F島的核電站式曲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏缸榛。R本人自食惡果不足惜吝羞,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望内颗。 院中可真熱鬧钧排,春花似錦、人聲如沸均澳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至糟袁,卻和暖如春柏腻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背系吭。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工五嫂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肯尺。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓沃缘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親则吟。 傳聞我的和親對象是個殘疾皇子槐臀,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容