map() forEach() some() every() filter() find() findIndex() slice() splice() split()

map() forEach() some() every() filter() find() findIndex() slice() splice() split()

計算下列方法單獨執行返回的值和原數組 nums 的值:

var nums = [1, 2, 3]
nums.map(x => x + 1)	// [2, 3, 4] 
nums.filter(x => x !== 2)	// [1, 3]
nums.find(x => x !== 3) 	// 1
nums.findIndex(x => x > 2)	// 2
nums.slice(1, 2)	// [2]	
nums.splice(1, 2, 1)	// [2, 3]
map() 方法

map() 方法返回一個新數組,數組中的元素爲原始數組元素調用函數處理後的值。

map() 方法按照原始數組元素順序依次處理元素。

  • map() 不會對空數組進行檢測
  • map() 不會改變原始數組
nums.map(x => x + 1)  	
var nums = [1, 2, 3]
console.log(nums.map(x => x + 1)) // [2, 3, 4] 
console.log(nums); // [1, 2, 3]
延伸 forEach() 方法

forEach() 方法用於調用數組的每個元素,並將元素傳遞給回調函數。

  • forEach() 對於空數組不會執行回調函數
  • 與map() 相同的是:都可以來遍歷數組;
  • 與map()不同的是:forEach() 方法沒有返回值,不會反返回新數組
延伸 some() 方法

some() 方法用於檢測數組中的元素是否有滿足指定條件(函數提供)。
some() 方法會依次執行數組的每個元素:

  • 如果有一個元素滿足條件,則表達式返回true , 剩餘的元素不會再執行檢測。
  • 如果沒有滿足條件的元素,則返回false。
  • 注意: some() 不會對空數組進行檢測。
  • 注意: some() 不會改變原始數組。
var ages = [3, 10, 18, 20];

function checkAdult(age) {
    return age >= 18;
}

function myFunction() {
    console.log(ages.some(checkAdult)); // true
}
延伸 every() 方法

every() 方法用於檢測數組所有元素是否都符合指定條件(通過函數提供)。

every() 方法使用指定函數檢測數組中的所有元素:

  • 如果數組中檢測到有一個元素不滿足,則整個表達式返回 false ,且剩餘的元素不會再進行檢測。
  • 如果所有元素都滿足條件,則返回 true。
  • 注意: every() 不會對空數組進行檢測。
  • 注意: every() 不會改變原始數組。
var ages = [32, 33, 16, 40];

function checkAdult(age) {
    return age >= 18;
}

function myFunction() {
    console.log(ages.every(checkAdult)); // false
}
filter() 方法

filter() 方法創建一個新的數組,新數組中的元素是通過檢查指定數組中符合條件的所有元素。

  • filter() 不會對空數組進行檢測
  • filter() 不會改變原始數組
// nums.filter(x => x !== 2) 
var nums = [1,2,3]
console.log(nums.filter(x => x !== 2)) // [1, 3]
console.log(nums); //  [1, 2, 3]
find() 方法

find() 方法返回通過測試(函數內判斷)的數組的第一個元素的值

  • find() 對於空數組,函數是不會執行的。

  • find() 並沒有改變數組的原始值。

// nums.find(x => x !== 3)
var nums = [1,2,3]
nums.find(x => x !== 3) 	// 1
console.log(nums);	// [1, 2, 3]
findIndex() 方法

findIndex() 方法返回傳入一個測試條件(函數)符合條件的數組第一個元素位置

  • 當數組中的元素在測試條件時返回 true 時, findIndex() 返回符合條件的元素的索引位置,之後的值不會再調用執行函數。
  • 如果沒有符合條件的元素返回 -1
  • findIndex() 對於空數組,函數是不會執行的。
  • findIndex() 並沒有改變數組的原始值。
// nums.findIndex(x => x > 2)
var nums = [1,2,3];
console.log(nums.findIndex(x => x > 2)) 	// 2
slice() 方法

slice(start, end) 方法可提取字符串的某個部分,並以新的字符串返回被提取的部分。

使用 start(包含) 和 end(不包含) 參數來指定字符串提取的部分 。

  • 如果是負數,則該參數規定的是從字符串尾部開始算起的位置。也就是說:-1指字符串最後一個字符,-2指倒數第二個字符。
// nums.slice(1, 2)
var nums = [1,2,3]
console.log(nums.slice(1, 2));	// [2]
console.log(nums);	// [1, 2, 3]
splice() 方法

splice() 方法用於添加或刪除數組中的元素。返回刪除的元素數組。

  • splice() 方法會改變原始數組。
array.splice(index,howmany,item1,.....,itemX)
// index: 必須&&數組、從索引index開始添加/刪除元素
// howhany:可選||必須數字、刪除多少元素,爲0時不刪除;未規定時刪除從index開始到數組結尾的所有元素
// item:可選、要添加到數組的新元素。
// nums.splice(1, 2, 1)
// 返回刪除的數組 從index爲1開始刪除2個元素
var nums = [1,2,3];
console.log(nums.splice(1, 2, 1))	// [2, 3]
console.log(nums);	// [1, 1]
延伸 split() 方法

split() 方法用於把一個字符串分割成字符串數組。

var str="How are you doing today?"

console.log(str.split(" "))	//  ["How", "are", "you", "doing", "today?"]
console.log(str.split(""))	// ["H", "o", "w", " ", "a", "r", "e", " ", "y", "o", "u", " ", "d", "o", "i", "n", "g", " ", "t", "o", "d", "a", "y", "?"]
console.log(str.split(" ",3))	// ["How", "are", "you"]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章