數組用於遍歷的方法

數組中用於遍歷的方法數組

 

一,for循環數據結構

語法:for(let ; ; )函數

二,for in:經常使用與遍歷對象對象

語法:for( let i in obj)字符串

三,forEach()get

做用:調用數組中的每一個元素,並將元素傳遞給回調函數進行執行,無返回值。回調函數

語法:array.forEach(function(currentValue, index, arr));io

四,for of:用於遍歷值console

語法:
for (var value of arr){
console.log(value);
}for循環

注意:for in和for of的區別

for in遍歷下標,for of遍歷值。

五,map()

做用:用於處理數組,並用return返回結果,結果組成一個新的數組返回。

語法:arr.map(function(value,key,arr){
...

})

六,filter()

做用:是一個過濾函數,須要在循環的時候判斷一下是true仍是false,是true纔會返回本來數組的這個元素。

語法:

let arr1 = [1,2,3];
let arr2 = arr1.filter((value,key,arr) => {
console.log(value) // 1,2,3
console.log(key) // 0,1,2
console.log(arr) // [1,2,3]
return value >= 3 ? false : true;
})
console.log(arr1); // [ 1, 2, 3 ]
console.log(arr2); // [ 1, 2 ]


注意:

數組利用filter加上箭頭函數去重
let arr = [1, 2, 2, 3, 4, 5, 5, 6];
let newArr = arr.filter((x, index,self)=>self.indexOf(x)===index)
console.log(newArr)

七,some():

和filter功能相同,不一樣的是,它返回boolean值,用於檢查數組中是否存在某對象.

語法:

if (arr.some(list => list.value === 1)) {
console.log('執行了!')
}


ES6的三個新方法:entries(),keys()和values() —— 用於遍歷對象,它們都返回一個遍歷器對象,能夠和for...of循環進行組合,惟一的區別是keys()是對鍵名的遍歷、values()是對鍵值的遍歷,entries()是對鍵值對的遍歷。

一,keys():遍歷對象的鍵值,返回一個由鍵值組成的數組。

做用:獲取對象的鍵值,並返回一個數組。

語法:

let obj = { a: 1, b: 2, c: 3 };

for (let key of Object.keys(obj)) {
console.log(key); // 'a', 'b', 'c'
}
 var obj1 = {"name":"lucas","age":22};
console.log(Object.keys(obj1)) //["name", "age"]

二,values()遍歷對象的值,並做爲數組返回。

做用:獲取對象的值,並做爲數組返回。

語法:

let obj = { a: 1, b: 2, c: 3 };
for (let value of Object.values(obj)) {
console.log(value); // 1, 2, 3
}


var obj1 = {"name":"lucas",age:22};
console.log(Object.values(obj1)) //["lucas", 22]

三,entries(),entries方法的一個用處是,將對象轉爲真正的Map結構。

entries()函數會將 key 和 value 以二維數組的形式都返回。

做用:初始化map結構的時候,能夠做爲輸入。

語法:

var obj2 = {foo:'bar',baz:42};//普通對象
var map2 = new Map(Object.entries(obj2));//entries()處理對象爲二維數組並做爲map的初始化值。
console.log(map2); //map{"foo" => "bar", "baz" => 42}

補充:

map數據結構是一種對象的解構,對象中的鍵再也不只是字符串,而是任意的數據類型均可以當鍵,是一種廣義的鍵。

聲明map解構:

let m = new Map();//map數據結構有四種方法,set,get,has,delete

m.set(123,'abc');//添加鍵值對

console.log(m.get(123));//獲取值

m.has(123);//-->true查找對象中是否有

m.delete(123);//刪除123鍵值對,成功刪除返回true,失敗返回false

相關文章
相關標籤/搜索