全部數組的方法(api)總結

目錄全部數組的方法(api)

ES3 的數組方法

join();
  • 目的:將數組轉換爲字符串
  • 是否改變原數組:不改變原數組,返回一個新的字符串
let arr = ["a","b","c","d","e"];
let arr1 = arr.join();
console.log(arr1); // a,b,c,d,e
console.log(arr); // ["a", "b", "c", "d", "e"] 不改變原來的數組
let arr2 = arr.join("-");
console.log(arr2); // a-b-c-d-e
複製代碼
reverse();
  • 目的 將數組中的元素顛倒順序
  • 是否改變原數組:改變原來的數組
let arr = ["a","b","c","d","e"];
let arr1 = arr.reverse();
console.log(arr1); // ["e", "d", "c", "b", "a"]
console.log(arr); // ["e", "d", "c", "b", "a"] 改變原來的數組
//怎麼顛倒字符串呢?
//先把字符串轉換數組再用數組的reverse轉換
let str = "abcde";
let str1 = str.split("").reverse().join("");
console.log(str1); // edcba
複製代碼
sort();
  • 目的: 將數組中的元素按照必定規則排序(必須是數字)
  • 是否改變原數組:改變原來的數組
let arr = [5,4,6,1,8,2,9];
let arr1 = arr.sort();
console.log(arr1); // [1, 2, 4, 5, 6, 8, 9]
console.log(arr); // [1, 2, 4, 5, 6, 8, 9] 改變原來的數組
複製代碼
concat();
  • 目的 用於鏈接兩個或多個數組
  • 是否改變原數組:不改變原來的數組,返回一個新的數組
let arr1 = [5,4,6,1,8,2,9];
let arr2 = ["a","b","c","d"];
let arr3 = arr1.concat(arr2);
console.log(arr3); // [5, 4, 6, 1, 8, 2, 9, "a", "b", "c", "d"]
複製代碼
slice(start,end);
  • 目的: 已有的數組中返回選定的元素
  • 是否改變原數組:不改變原來的數組,返回一個新的數組
let arr = ["a","b","c","d"];
let arr1 = arr.slice(0,1); 
let arr2 = arr.slice(1)
console.log(arr1); // ["a"]
console.log(arr2); // ["b", "c", "d"]
複製代碼
splice();
  • 目的 向/從數組中添加/刪除項目,而後返回被刪除的項目
  • 是否改變原數組:改變原來的數組
let list = [1,2,3,];
// 刪除
// list.splice(0,3);  // 刪除  -> 從下標爲0開始,項數爲1
// console.log(list); // [2,3]
// list.splice(0,2);  // 刪除  -> 從下標爲0開始,項數爲2
// console.log(list); // []

//替換
// list.splice(0,1,4); // 替換 -> 從下標爲0開始,項數爲1的數組元素替換成4
// console.log(list);  // [4,2,3]
// list.splice(0,2,4); // 替換 -> 從下標爲0開始,項數爲2的數組元素替換成4(即4,2總體替換成4)
// console.log(list);  // [4,3]

//添加
list.splice(1,0,5); // 表示在下標爲1處添加一項5
console.log(list);    // [1,5,2,3]        
複製代碼
push();和pop();
  • 目的: 向數組後面中插入或刪除元素
  • 是否改變原數組:改變原來的數組
let list = [1,2,3];
let list1 = list.push(5);
console.log(list1); // 4 數組長度
console.log(list); // [1, 2, 3, 5]
let list2 = list.pop();
console.log(list2); // 後面最後一個值5 數組值
console.log(list);  // [1,2,3] 
複製代碼
unshift();和shift();
  • 目的 想數組前面中插入或刪除
  • 是否改變原數組:改變原來的數組
let list = [1,2,3,];
let list1 = list.unshift(5);
console.log(list1); // 4 數組長度
console.log(list); // [5,1, 2, 3]
let list2 = list.shift();
console.log(list2); // 5 第一個數組值
console.log(list);  // [1,2,3]    
複製代碼
toString();和toLocaleSting();
  • 目的: 把數組轉換爲字符串,並返回結果,每一項以逗號分割;把數組轉換爲本地數組,並返回結果。
  • 是否改變原數組:不改變原來的數組,返回一個新的字符串
let list = [1,2,3,];
let list1 = list.toString();
console.log(list1); // 1,2,3
let list2 = list.toLocaleString();
console.log(list2); // 1,2,3
複製代碼

ES5的數組方法

map();

*目的: 建立一個新數組,其結果是該數組中的每一個元素都調用一個提供的函數後返回的結果api

  • 是否改變原數組:不改變原來的數組,返回一個新數組
let list = [1,2,3,];
const data = list.map(item=>(item * 2));
console.log(data); // [2, 4, 6]
console.log(list); // 原來數組不變
複製代碼
filter();
  • 目的: 將數組的每一個元素傳遞給指定的函數,並返回一個數組,它包含該函數的返回值
  • 是否改變原數組:不改變原來的數組,返回一個新數組,新數組是原數組的子集
let arr = [1,2,3,4,5,8,9,10];
let list = arr.filter((x) => {
   return x>2;
})
console.log(list); // [3, 4, 5, 8, 9, 10]
複製代碼
every()和some();
  • 目的:對數組元素應用指定的函數斷定
  • 對於空數組,every() 返回true, some()返回 false.
let arr = [1,2,3,4,5,8,9,10];
let list = arr.every((x) => {
   return x>2;
})
console.log(list); // false

let arr = [1,2,3,4,5,8,9,10];
let list = arr.some((x) => {
   return x>2;
})
console.log(list); // true
複製代碼
reduce()和reduceRight()
  • 目的:使用指定的函數將數組元素進行組合,生成單個值.
  • 是否改變原數組: 不改變原數組,返回一個新數組。
let data = [1,2,3,4,5,6,7,8,9,10]
let str = data.reduce((prev,cur,index,arr) => {
	return prev + cur ;
});
console.log(str); // 55

reduceRight()從數組的末尾向前將數組中的數組項作累加

let data = [1,2,3,4,5,6,7,8,9,10]
let str = data.reduceRight((prev,cur,index,arr) => {
	return prev + cur ;
});
console.log(str);
複製代碼
indexOf()和lastIndexOf()
  • 目的:搜索數組中具備給定值的元素。
  • indexOf() 指從前日後查詢. lastIndexOf() 指從後往前查詢.
let arr = [2, 4, 6, 8, 8, 6, 4, 2];
console.log(arr.indexOf(4, 2));     //從索引爲2的位置開始查找   6
console.log(arr.indexOf(4));        //從頭開始找,找到第一個即中止  1


let arr = [2, 4, 6, 8, 8, 6, 4, 2];
console.log(arr.lastIndexOf(4));    //從後往前走,但返回的是從前日後的索引  6
console.log(arr.indexOf("2"));      //找不到返回-1 -1
複製代碼

ES6的數組方法

Array.from();
  • 目的:將類數組對象和可遍歷對象轉化爲數組.
let obj = "ffkfkfk";
let list = Array.from(obj);
console.log(list); // ["f", "f", "k", "f", "k", "f", "k"]
複製代碼
Array.of()
  • 目的:將一組值轉化爲數組.
let arr = [1,2,3,4];
let list = Array.of(arr);
console.log(list); // [Array(4)]
複製代碼
copyWithin();
  • 目的:在數組內部,將指定位置的成員複製到其餘位置(會覆蓋原有成員).
  • 是否修改原數組:修改原數組.
let fruits = ["Banana", "Orange", "Apple", "Mango"];
let list = fruits.copyWithin(2, 0);
console.log(list)   // ["Banana", "Orange", "Banana", "Orange"]
複製代碼
find()和findIndex()
  • 目的:在數組內部, 找到第一個符合條件的數組成員.
查找元素,返回找到的值,找不到返回undefined。
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
const ret1 = arr1.find((value, index, arr) => {
  return value > 4
})

const ret2 = arr1.find((value, index, arr) => {
  return value > 14
})
console.log('%s', ret1)  // 5
console.log('%s', ret2)  // undefined
複製代碼
fill();
  • 目的:如其意,填充一個數組.
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const list = fruits.fill("Runoob");
console.log(list);  // ["Runoob", "Runoob", "Runoob", "Runoob"]
複製代碼

ES7的數組方法

includes();
  • 目的:表示某個數組是否包含給定的值,與字符串的includes()方法相似.
Array.prototype.includes方法返回一個布爾值,表示某個數組是否包含給定的值,與字符串的includes方法相似。該方法屬於 ES7 ,但 Babel 轉碼器已經支持。
[1, 2, 3].includes(2); // true
 
[1, 2, 3].includes(4); // false
 
[1, 2, NaN].includes(NaN); // true


該方法的第二個參數表示搜索的起始位置,默認爲 0 。若是第二個參數爲負數,則表示倒數的位置,若是這時它大於數組長度(好比第二個參數爲 -4 ,但數組長度爲 3 ),則會重置爲從 0 開始。

[1, 2, 3].includes(3, 3); // false
 
[1, 2, 3].includes(3, -1); // true
複製代碼

總結不對的地方請大神們指點一下數組

相關文章
相關標籤/搜索