2018 6 3 《JS遍歷方法(12個)》

2022-02-15 07:53:43 字數 3439 閱讀 8484

/*

12個遍歷方法:

1. foreach es5

2. every es5

3. some es5

4. filter es5

5. map es5

6. reduce es5

7. reduceright es5 與reducer大同

8. find es6 根據條件找到陣列成員。返回第乙個陣列成員,如果沒有,返回'undefined'

9. findindex es6 根據條件找到陣列成員。返回第乙個陣列成員的下標,如果沒有,返回'undefined'

10. keys es6 11. values es6 12. entries es6 */

一. foreach()

//foreach()

// 按公升序對陣列中每一項(有效值)進行一次**

//!!!!!返回 undefined值,即使你return了乙個值,即返回無效

let arr = [1,3,5];

arr.foreach((v,i,a) => );

二. every

//every()———檢測陣列中所有元素是否附和規則判斷

//引數和foreach一樣, v,i,a, return有效

let arr_1 = [1,3,5,7,9];

let arr_2 = [2,4,6,8];

let isodd = (v) => ;

let ret_1 = arr_1.every(isodd);

let ret_2 = arr_2.every(isodd);

console.log(ret_1); //false

console.log(ret_2); //true

三. some

//some()——陣列中是否有滿足判斷條件的元素

// 邏輯等同於: ||

let arr_1 = [1,3,5,7,9,88];

let arr_2 = [3,7,9];

//函式

let isodd = (v) => ;

let ret_1 = arr_1.some(isodd); // 是否存在乙個(或多個)偶數 ture (88)

let ret_2 = arr_2.some(isodd); // 是否存在乙個(或多個)偶數 false

console.log(ret_1);

console.log(ret_2);

四. filter

//filter(); 過濾陣列元素, 返回新陣列

// 引數: v,i,a; return有效;

// 注意:是過濾

let arr = [1,3,5,7];

let ret = arr.filter(v => );

console.log(ret); //[5,7]

console.log(ret instanceof array); //true

五. map

//map()——對陣列中的每個元素都處理,返回新陣列

// 引數:v, i, a ,return有效

let arr = [1,2,4,8];

let arr_2 = [1,2,4,nan,8];

let arr_3 = [1,2,4,null,8];

let arr_4 = [1,2,4,undefined,8];

let ret = arr.map(v => v*v);

let ret_2 = arr_2.map(v => v*v);

let ret_3 = arr_3.map(v => v*v);

let ret_4 = arr_4.map(v => v*v);

console.log(ret); //[1,4,16,64]

console.log(ret_2); //[1,4,16,nan,64]

console.log(ret_3); //[1,4,16,0,64]

console.log(ret_4); //[1,4,16,nan,64] 即:陣列中有「nan」和「undefined」是都nan; //null為0

六. reduce

//reduce()—— 為陣列提供累加器,合併乙個值

//語法:arr.reduce(function(total, currentvalue, currentindex, arr), 初始值)

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

let ret = arr.reduce((tv, cv) => ,0);

let ret_2 = arr.reduce((tv, cv) => ,10000);

console.log(ret); //45

console.log(ret_2); //10045

七. reducerright (用法與reducer大同)

八. find

//find() ——找到附和條件的陣列成員,並返回該成員;找不到,返回'undefined'

let arr = ['蘋果',3,4,'good'];

let ret = arr.find(v => );

console.log(ret); //蘋果

let arr = [61,-7.5,0,3,9,-0.5,88];

let ret = arr.find(v =>);

console.log(ret); // -7.5;注意:是第乙個元素!!!!!!

九. findindex

//findindex();—— 返回第乙個附和條件的陣列位置, 若不符合,返回-1;

let arr = [1,3,5,7,8,9];

let arr_2 = [1,3,5,7,9];

let ret = arr.findindex(v => );

let ret_2 = arr_2.findindex(v => );

console.log(ret); //4

console.log(ret_2); //-1;即沒有

十. array.keys()、array.values()、array.enties()

//都是返回: array iterator

let arr = ['foo','bar','neek'];

for(let i of arr.keys())

for(let v of arr.values())

//注意:是,不是() !!!!for(let [i,v] of arr.entries())

js陣列遍歷方法

let arr a b c d e for let i 0,len arr.length i len i let arr a b c d e arr.foreach item,index,arr 引數 描述 object object型別 指定需要遍歷的物件或陣列。callback function...

js中常用到的12中迴圈遍歷的方法

1 for 迴圈 let arr 1,2,3 for let i 0 iconsole.log i,arr i 0 1 1 2 2 3 for 迴圈是 js 中最常用的乙個迴圈工具,經常用於陣列的迴圈遍歷。2 for in 迴圈 vue中常用到 let obj for let iinobj name...

js遍歷物件的方法

1.for in 迴圈遍歷物件自身的和繼承的可列舉屬性 不含symbol屬性 2.obejct.keys obj 返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含symbol屬性 3.object.getownpropertynames obj 返回乙個陣列,包含物件自身 不含繼承的 ...