forEach() 方法用於調用數組的每一個元素,並將元素傳遞給回調函數;forEach()對於空數組不會執行回調函數。沒有返回值數組
var arr = ["apple", "orange", "banana"];
arr.name = 'Nicholas';
arr.push('pear');
arr.forEach((item, index) => {
console.log(index + ' => ' + item); // 0 => apple,1 => orange, 2 => banana, 3 => pear
});
複製代碼
forEach()函數只會遍歷數組中數字索引的元素,若是是手動添加的非數字索引的元素將不會遍歷。bash
每一個數組元素都執行一次ck函數,最後返回每次元素執行ck函數後返回值的集合(數組);不會改變原數組app
注意:若是當前數組中的數據時引用類型,那麼原數組數組中的對象信息將會改變, 指針引用函數
var arr = [1, 2, 3, 4];
arr.push(5);
arr.name = 'Nicholas';
var newArr = arr.map((item, index) => {
return item * 10;
});
console.log(newArr); // [10, 20, 30, 40, 50]
複製代碼
map()與forEach()函數類似,只會遍歷數組中數字索引的元素,若是是非數字索引的元素將不會遍歷ui
每一個數組元素都執行一次ck函數,最後返回每次元素執行ck函數後返回值的爲true的元素集合(數組)spa
var arr = [1, 2, 3, 4, 5, 6];
arr.push(8);
arr.name = 10;
var newArr = arr.filter((item, index) => {
if (item > 3) {
return item;
}
});
console.log(newArr); // [4, 5, 6]
複製代碼
filter()不遍歷數組的非數字索引的屬性指針
indexOf()方法返回在該數組中第一個找到的元素位置,若是它不存在則返回-1code
查詢數組中是否含有"orange
",不使用indexOf時:對象
var arr = ['apple','orange','pear'],
found = false;
for(var i= 0, l = arr.length; i< l; i++){
if(arr[i] === 'orange'){
found = true;
}
}
console.log("found: " + found); // found: true
複製代碼
使用indexOf:排序
var arr = ['apple','orange','pear'];
console.log("found: " + arr.indexOf("orange") !== -1);
複製代碼
每一個數組元素都執行一次ck函數,直到某個元素執行函數ck返回false,則直接返回false,若是所有返回true,則返回true(只要有不知足條件的,就返回false)
var a = [1, 2, 3, 4, 5];
var value = a.every((item, index) => {
if (item > 4) {
return true;
}
});
console.log(value); // false
複製代碼
對數組中每一個元素執行一次ck函數,知道某個元素返回true,則直接返回true。若是都返回false,則返回false(只要有知足條件的就返回true)
var a = [1, 2, 3, 4, 5];
var value = a.some((item, index) => {
if (item > 4) {
return true;
}
});
console.log(value); // true
複製代碼
對於compare函數的解釋:比較函數在第一個值應該位於第二個以後的狀況下返回1,而在第一個值應該在第二個以前的狀況下返回-1。交換返回值的意思是讓更大的值排位更靠前,也就是對數組按照降序排序。返回值爲排序後的數組
var arr = [23, 45, 3434,232, 344];
var newArr = arr.sort((a, b) => {
if (a > b) {
return 1; // 返回值爲則換位置,即將大的換到後面,從小到大排序
} else {
return -1;
}
});
console.log(newArr); // [23, 45, 232, 244, 3434]
複製代碼
根據條件對數組組合成字符串
var arr = [1, 2, 3, 4];
var result = arr.join(',');
console.log(result); // 1,2,3,4
複製代碼
循環將遍歷對象自己的全部可枚舉屬性,以及對象從其構造函數原型中繼承的屬性(更接近原型鏈中對象的屬性覆蓋原型屬性
var arr = ["apple", "orange", "banana"];
arr.name = 'Nicholas';
arr.push('pear');
for (index in arr) {
console.log(index + ': ' +arr[index]); // 0:apple, 1:orange, 2:banana, 3:pear, name:Nicholas
}
複製代碼