首先給你們展現一下數組有哪些經常使用的方法算法
鏈接兩個或更多數組,並返回結果
對數組中的每一項運行給定函數,若是該函數對每一項都返回true,則返回true
對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組
對數組中的每一項運行給定函數。這個方法沒有返回值
將全部的數組元素鏈接成一個字符串
返回第一個與給定參數相等的數組元素的索引,沒有找到則返回-1
返回在數組中搜索到的與給定參數相等的元素的索引裏最大的值
對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組
顛倒數組中元素的順序,原先第一個元素如今變成最後一個,一樣原先的最後一個元素變成了如今的第一個
對數組中的每一項運行給定函數,若是任一項返回true,則返回true
按照字母順序對數組排序,支持傳入指定排序方法的函數做爲參數
將數組做爲字符串返回
和toString相似,將數組做爲字符串返回
經常使用於對數組求和
傳入索引值,將數組裏對應索引範圍內的元素做爲新數組返回
插入或者刪除 (修改數組自己)
下面進行詳細講解數組
var arr1 = [1, 'e', 'r'];
var arr2 = [3, 9, 'r'];
var arr = ['w', 'q'];
var newArr = arr.concat(arr1, arr2)
console.log("arr:", arr); //arr: ["w", "q"]
console.log('newArr:', newArr); //newArr: ["w", "q", 1, "e", "r", 3, 9, "r"]
複製代碼
every some forEach map filter reduce
bash
every和some講解數據結構
every 對數組中的每一項運行給定函數,若是該函數對每一項都返回true,則返回true, 不然返回false
some 對數組中的每一項運行給定函數,若是任一項返回true,則返回true
函數
every和some的區別
every:如有一項結果爲false,則執行結束
some:如有一項爲true, 則執行結束
學習
//代碼示例
//場景 判斷數組中的值是否都爲偶數
var isEven = function(x) {
console.log(x);
return (x % 2 == 0) ? true : false;
}
var numbers = [1, 2 ,3 ,4];
console.log("every:", numbers.every(isEven)); //第一個元素是1, 他不是2的倍數,所以isEven函數返回false,而後every執行結束。
console.log("---------------");
console.log("some:", numbers.some(isEven)); //第一個元素isEven返回false, 第二個元素isEven返回true————迭代結束,
/*
控制檯輸出爲
1
every: false
---------------
1
2
some: true
*/
複製代碼
forEach,filter, map講解ui
var arr = [1, 2 ,3 ,4, 5, 6];
arr.forEach(function(x) { //對數組中的每一項運行給定函數。這個方法沒有返回值
console.log(2*x) //2, 4 ,6, 8, 10, 12
})
var newArr = arr.filter(function(x) { //對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組
return x % 2 == 0
})
console.log(arr) //[1, 2, 3, 4, 5, 6]
console.log(newArr) //[2, 4, 6] 不改變原數組
var newArr = arr.map(function(x) {//對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組
return x % 2 == 0
})
console.log(arr) // [1, 2, 3, 4, 5, 6]
console.log(newArr) //[false, true, false, true, false, true]
複製代碼
reduce講解spa
//reduce 返回一個將被疊加到累加器的值, reduce方法中止執行後會返回這個累加器
var arr = [1, 2 ,3 ,4, 5, 6];
var result = arr.reduce(function(previous, current, index, arr) {
return previous + current;
})
console.log(result); //21
複製代碼
reverse sort indexOf lastIndexOf
code
reverse sort講解對象
//reverse
var arr = [1, 8, 3, 15, 25]
var reverse = arr.reverse(); //將數組反序 改變的是原數組
console.log(arr); [25, 15, 3, 8, 1]
console.log(reverse); [25, 15, 3, 8, 1]
var arr = [1, 8, 3, 15, 25];
var arr = [1, 8, 3, 15, 25]
arr.sort(function(a, b) { //sort 按照字母順序對數組排序,支持傳入指定排序方法的函數做爲參數
return a-b;
})
console.log(arr); //[1, 3, 8, 15, 25] 改變的是原數組
複製代碼
indexOf, lastIndexOf講解
var arr = [1, 8, 1, 3, 1, 15, 25]
console.log(arr.indexOf(1)); //0 返回參數匹配的第一個元素的索引
console.log(arr.lastIndexOf(1));//4 返回參數匹配的最後一個元素的索引
複製代碼
··································································································································
遍歷對象的方法
//返回一個數組,包含對象自身的全部屬性(不含Symbol屬性,可是包括不可枚舉屬性).
var obj = {'0':'a','1':'b','2':'c'};
Object.getOwnPropertyNames(obj).forEach(function(key){
console.log(key,obj[key]);
});
複製代碼
//循環遍歷對象自身的和繼承的可枚舉屬性(不含Symbol屬性).
var obj = {'0':'a','1':'b','2':'c'};
for(var i in obj) {
console.log(i,":",obj[i]);
}
複製代碼
//返回一個數組,包括對象自身的(不含繼承的)全部可枚舉屬性(不含Symbol屬性).
var obj = {'0':'a','1':'b','2':'c'};
Object.keys(obj).forEach(function(key){
console.log(key,obj[key]);
});
複製代碼
學習筆記:參考《學習Iavascript數據結構與算法》