JavaScript——數組常用數組方法匯總

來源:互聯網
上載者:User

標籤:

    //1.方法功能是什麼
//2.傳遞的參數是什麼
//3.傳回值是什麼
//4.原來的數組是否改變
/* 第一組:關於數組的增加、刪除和修改
1.push 向數組末尾增加新的內容,返回的是添加後新數組的長度,原有的數組改變了
var arr=[10,11,12,13,14,15];
var res=arr.push(16,17);
console.log(res); //8
2.unshift 向數組的開頭增加新的內容,返回的是添加後新數組的長度,原來的數組也改變
var res=arr.unshift(16,17);
console.log(res); //8
3.splice(n,0,x) 向數組中間某個位置添加新的內容 從索引n開始,刪除0個內容,把新增的內容x放在索引n的前面。
返回的是一個空數組,原有數組改變
n開始的索引
splice(n,m) 刪除數組指定項,從所以n(包含n)開始,向後刪除m個元素 ,把刪除的內容當做新數組返回,原有數組改變
splice(n,m,x) 把原有數組中的某些項進行替換。(先刪除,然後用x替換)。從所以n(包含n)開始,向後刪除m個元素,用x替換,
返回刪除的數組,原有數組改變
規律:splice(0,0,x) 相當於unshift
splice(arr.length,0,x) 相當於push
var res=arr.splice(2,0,"michael"); //在12後面添加“michael"
console.log(arr);
4.pop 刪除數組最後一個,返回的是刪除的那一項,原有數組改變
shift 刪除數組第一個,返回的是刪除的那一項,原有數組改變

*/


/*
第二組:數組的查詢和複製
6.slice(n,m) 從索引n(包含n)開始找到索引m(不包含m)處。把找到的內容作為一個新的數組返回,原有數組是不改變的。
var arr=[10,11,12,13,14,15];
var res=arr.slice(1,4);
console.log(res); //[11, 12, 13]
console.log(arr); //[10, 11, 12, 13, 14, 15]
slice(n) 從索引n(包含n)開始找到末尾
slice(0) / slice() 將原來數組原封不動的複製一份,數組clone
7.concat 也可以是吸納舒服的複製,原來的數組也改變(相當於slice(0))
concat 本意是實現數組的拼接的 arr1.concat(arr2) 將數組arr2和數組arr1合并成新的數組,原來的數組也不變
var arr1=[10,11,12,13,14,15];
var arr2=[16,17];
var res=arr1.concat(arr2);
console.log(arr1); //[10, 11, 12, 13, 14, 15]
console.log(res); //[10, 11, 12, 13, 14, 15, 16, 17]

*/
/*
第三組:將數組轉化為我們的字串
8.toString 把數組中的每一項拿出來,用逗號隔開,組成字串,原有數組不變
var arr=["name","michael","age","24"];
var res=arr.toString();
console.log(res); //name,michael,age,24
console.log(arr); //["name", "michael", "age", "24"]
9.join(分隔字元) 把數組中的每一項拿出來,用指定的分隔字元隔開,原有數組不變。
var arr=["name","michael","age","24"];
var res=arr.join("|");
console.log(res); //"name|michael|age|24"
console.log(res.length); //19
console.log(arr); //["name", "michael", "age", "24"]
console.log(arr.length); //4


實現數組中數位求和
var arr=[10,11,12,13,14,15];
var str=arr.join("+"); //"10+11+12+13+14+15"
var total=eval(str); //eval 將指定的字串變成真正的額運算式執行
console.log(total); //75
console.log(arr); //[10, 11, 12, 13, 14, 15]

*/
/*
第四組:排列和排序
10.reverse 數組倒過來排列,原有數組改變。
var arr=[10,11,12,13,14,15];
console.log(arr); //[10, 11, 12, 13, 14, 15]
var res=arr.reverse(); //"10+11+12+13+14+15"
console.log(res); //[15, 14, 13, 12, 11, 10]
11.sort 數組的排序,可以實現由大到小(由小到大),原有的數組也變
直接寫sort只能處理10以內的數字排序,處理10以上的我們需要傳遞一個參數,這個參數必須是函數
var arr=[10,12,11,19,13,15,6];
console.log(arr); //[10, 12, 11, 19, 13, 15,6]
var res=arr.sort();
console.log(res); //[10, 11, 12, 13, 15, 19, 6]
改進:
var arr=[10,12,11,19,13,15,6];
console.log(arr); //[10, 12, 11, 19, 13, 15,6]
var res1=arr.sort(function(a,b){return a-b;}); //實現由小到大
console.log(res1);
var res2=arr.sort(function(a,b){return b-a;}) //實現由大到小
console.log(res2); //[10, 11, 12, 13, 15, 19, 6]
var arr=[10,12,11,19,13,6];
console.log(arr); //[10, 12, 11, 19, 13, 15,6]

var res1=arr.sort(function(a,b){
//a表示每一次迴圈的時候的當前項,b是後面的項
//return a-b;當前項減去後一項,如果大於0,代表前面的比後面的大,這樣的話就交換位置
//冒泡排序:sort實現排序,就是遵循冒泡排序的思想實現的
console.log(a+"<====>"+b);
return a-b;}); //實現由小到大
console.log(res1);
*/
/*
第五組:一些常用但不相容
12.indexOf
array1.indexOf(searchElement[, fromIndex])
fromIndex可選 用於開始搜尋的數組索引。 如果省略 fromIndex,則從索引 0 處開始搜尋。
數組中的 searchElement 的第一個匹配項的索引;如果未找到 searchElement,則為 -1。
var arr=["hello","michael","good","study"];
var p=arr.indexOf("mi",0);
console.log(p); //-1
13.forEach
array1.forEach(callbackfn[, thisArg])
callbackfn 必選。 最多可以接受三個參數的函數。 對於數組中的每個元素,forEach 都會調用 callbackfn 函數一次。
thisArg 可選。 callbackfn 函數中的 this 關鍵字可引用的對象。 如果省略 thisArg,則 undefined 將用作 this 值。
如果 callbackfn 參數不是函數對象,則將引發 TypeError 異常。
對於數組中出現的每個元素,forEach 方法都會調用 callbackfn 函數一次(採用升序索引順序)。 將不會為數組中缺少的元素調用回呼函數。
除了數組對象之外,forEach 方法可由具有 length 屬性且具有已按數字編製索引的屬性名稱的任何對象使用。
回呼函數文法
回呼函數的文法如下所示:
function callbackfn(value, index, array1)
value 數組元素的值。
index 數組元素的數字索引。
array1包含該元素的數組對象。
// Create an array.
var numbers = [10, 11, 12];

// Call the addNumber callback function for each array element.
var sum = 0;
numbers.forEach(
function addNumber(value) { sum += value; }
);

document.write(sum);
// Output: 33
https://msdn.microsoft.com/zh-cn/library/ff679980(v=vs.94).aspx
14.map
array1.map(callbackfn[, thisArg])
callbackfn 必選。 最多可以接受三個參數的函數。 對於數組中的每個元素,map 方法都會調用 callbackfn 函數一次。
[, thisArg]可選。 callbackfn 函數中的 this 關鍵字可引用的對象。 如果省略 thisArg,則 undefined 將用作 this 值。

傳回值
一個新數組,其中的每個元素均為關聯的原始數組元素的回呼函數傳回值。

異常
如果 callbackfn 參數不是函數對象,則將引發 TypeError 異常。

備忘
對於數組中的每個元素,map 方法都會調用 callbackfn 函數一次(採用升序索引順序)。 將不會為數組中缺少的元素調用回呼函數。
除了數組對象之外,map 方法可由具有 length 屬性且具有已按數字編製索引的屬性名稱的任何對象使用。
回呼函數文法
回呼函數的文法如下所示:
function callbackfn(value, index, array1)
你可使用最多三個參數來聲明回呼函數。
回調參數 定義
value 數組元素的值。
index 數組元素的數字索引。
array1 包含該元素的數組對象。
// Define the callback function.
function AreaOfCircle(radius) {
var area = Math.PI * (radius * radius);
return area.toFixed(0);
}

// Create an array.
var radii = [10, 20, 30];

// Get the areas from the radii.
var areas = radii.map(AreaOfCircle);

document.write(areas);

// Output:
// 314,1257,2827
*/

JavaScript——數組常用數組方法匯總

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.