首頁 >web前端 >js教程 >javascript中對數組的方法的總結(附程式碼)

javascript中對數組的方法的總結(附程式碼)

不言
不言原創
2018-08-28 17:39:001180瀏覽

本篇文章帶給大家的內容是關於javascript中對數組的方法的總結(附代碼) ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

1.copyWithin() 方法              會改變原數組
複製數組的前面兩個元素到後面兩個元素上:
array.copyWithin(target, start, end)
參數描述
target    必需。複製到指定目標索引位置。
start     可選。元素複製的起始位置。
end       可選。停止複製的索引位置 (預設為 array.length)。若為負值,表示倒數。

var arr = [1,2,3,4,5];
arr.copyWithin(3,0,2);
console.log(arr);  //1,2,3,1,2

2.every(function(){})             不會改變原始數組
給數組的每一項都執行一個函數,如果每一項都回傳true,則回傳true;

var arr=[1,2,3,4,5];
var result=arr.every(function(item){
  return item>1;
})
console.log(result);  //false

3.some(function(){})               不會改變原始數組
給數組的每一項都執行一個函數,如果有一個回傳true,則回傳true;

var arr=[1,2,3,4,5]
var result=arr.some(function(item){
  return item>1;
})
console.log(result)  //true

#

var arr=[1,2,3,4,5];
arr.fill("哈哈",0,3);
console.log(arr);  //[ '哈哈', '哈哈', '哈哈', 1, 2 ]

4.fill()  使用固定值來填入陣列    會改變原始陣列
array.fill(value, start, end)
參數      說明
value      必要。填充的值。
start      可選。開始填充位置。

end        可選。停止填滿位置(預設為array.length)

var ages = [22, 53, 16, 40];
var ar5=ages.filter(function(age){
  return age>30;
})
console.log(ar5) //[ 53, 40 ]

5.filter()          不會改變原始陣列
建立一個新的陣列,新陣列中的元素是透過檢查指定陣列中符合條件的所有元素。

注意: filter() 不會對空數組進行偵測。

var num = [212, 537, 160, 401];
function odd(x){
  return x%2;
}
var ar6=num.find(odd);
console.log(ar6);   //537

6.find()      不會改變原始陣列
傳回通過測試(函數內判​​斷)的陣列的第一個元素的值。
find() 方法為數組中的每個元素都呼叫一次函數執行:
當數組中的元素在測試條件時傳回true 時, find() 傳回符合條件的元素,之後的值不會再調用執行函數。
如果沒有符合條件的元素回傳 undefined

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

var num = [212, 537, 160, 401];
function odd(x){
  return x%2;
}
console.log(num.findIndex(odd)); //1

7.findIndex()    不會改變原始陣列
傳回傳入一個測試條件(函數)符合條件的陣列第一個元素位置。
findIndex() 方法為數組中的每個元素都呼叫一次函數執行:
當數組中的元素在測試條件時返回true 時, findIndex() 傳回符合條件的元素的索引位置,之後的值不會再呼叫執行函數。
如果沒有符合條件的元素回傳 -1

注意: findIndex() 對於空數組,函數是不會執行的。

var num = [212, 537, 160, 401];
console.log(num.indexOf(160));  //2

8.indexOf()    不會改變原始陣列

搜尋陣列中的元素,並傳回它所在的位置。

var num = [212, 537, 160, 401];
console.log(num.indexOf(160));  //

9.lastIndexOf()   不會改變原數組

返回一個指定的字串值最後出現的位置,在一個字串中的指定位置從後向前搜尋。

var num = [212, 537, 160, 401];
console.log(num.join());  //212,537,160,401

10.join()      會改變原始數組
把陣列轉換為字串,元素是透過指定的分隔符號分隔的,如果沒有預設逗號
toString()     會改變原始數組

把陣列轉換為字串,並傳回結果,沒有參數

var arr=[12,23,45,56,78];
var arr1=arr.map(function(x){
  return x+1;
})
console.log(arr1);  //[ 13, 24, 46, 57, 79 ]
console.log(arr);   //[ 12, 23, 45, 56, 78 ]

11.map()    不會改變原始陣列

透過指定函數處理陣列的每個元素,並傳回處理後的陣列

var num=[ 212, 537, 160, 401 ];
num.forEach(function(num){
  return num/2;
})
console.log(num);  //[ 212, 537, 160, 401 ]

12.forEach()      不會改變原始陣列
方法用於呼叫陣列的每個元素,並將元素傳遞給回呼函數。

注意: forEach() 對於空數組是不會執行回呼函數的

var arr=[ 12, 23, 45, 56, 78 ];
var arr2=arr.reduce(function(total,item){
  return total-item;
})
console.log(arr2); //-190
console.log(arr);  //[ 12, 23, 45, 56, 78 ]

13.reduce()      不會改變原始數組
接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值。
reduce() 可以作為一個高階函數,用於函數的 compose。

注意: reduce() 空數組是不會執行回呼函數的

var arr=[ 12, 23, 45, 56, 78 ];
var arr2=arr.reduceRight(function(total,item){
  return total-item;
})
console.log(arr2);  //-58
console.log(arr);   //[ 12, 23, 45, 56, 78 ]

14.reduceRight()      不會改變原始數組
 功能和reduce() 功能是一樣的,不同的是reduceRight() 從陣列的結尾向前將陣列中的陣列項目做累加。

 注意: reduce() 空白數組是不會執行回呼函數的

var arr2=[2,8,45,12,5,67,9];
arr2.sort(function(a,b){
  return a-b;
});
console.log(arr2);  //[ 2, 5, 8, 9, 12, 45, 67 ]

15.pop()       會改變原始陣列
刪除陣列的最後一個元素並傳回刪除的元素。沒有參數
shift()        會改變原始陣列
刪除並傳回陣列的第一個元素。沒有參數
push()         會改變原始陣列
在陣列的末端新增一個或更多元素,並傳回新的長度。參數為要新增的元素,可以為一個或多個
unshift()      會改變原始陣列

新增一個或更多元素,並傳回新的長度。參數為要新增的元素,可以為一個或多個###

16.sort()      会改变原数组
对数组的元素进行排序,只能是一位数,如果是两位数会按字典序排列,改进:加一个回调函数

var arr2=[2,8,45,12,5,67,9];
arr2.sort(function(a,b){
  return a-b;
});
console.log(arr2);  //[ 2, 5, 8, 9, 12, 45, 67 ]

17.reverse()    会改变原数组
反转数组的元素顺序

var arr2=[ 2, 5, 8, 9, 12, 45, 67 ];
arr2.reverse();
console.log(arr2);    //[ 67, 45, 12, 9, 8, 5, 2 ]

18.valueOf()         不会改变原数组
返回数组对象的原始值,一般原样返回

var arr2=[ 67, 45, 12, 9, 8, 5, 2 ];
arr2.valueOf();
console.log(arr2);  //[ 67, 45, 12, 9, 8, 5, 2 ]
// 可以自己定义一个对象的valueOf()方法来覆盖它原来的方法。
// 这个方法不能含有参数,方法里必须return一个值。
var x = {};
x.valueOf = function(){
    return 10;
}
console.log(x+1);// 输出10
console.log(x+"hello");//输出10hello

19.slice()       不会改变原数组
选取数组的的一部分,并返回一个新数组。
array.slice(start, end)
参数        描述
start       可选。规定从何处开始选取(包括)。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元                 素,-2 指倒数第二个元素,以此类推。
end         可选。规定从何处结束选取(不包括)。该参数是数组片断结束处的数组下标。
                如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。
                如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

var arr2=[ 67, 45, 12, 9, 8, 5, 2 ];
console.log(arr2.slice(1,4));  //[ 45, 12, 9 ]
console.log(arr2);     //[ 67, 45, 12, 9, 8, 5, 2 ]

20.splice()    会改变原始数组
方法用于插入、删除或替换数组的元素。
array.splice(index,howmany,item1,.....,itemX)
参数                       描述
index                     必需。规定从何处添加/删除元素。
                              该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany               必需。规定应该删除多少元素。必须是数字,但可以是 "0"。
                              如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, ..., itemX     可选。要添加到数组的新元素

arr3=[2,3,4,5,6,7,8];
//删除
arr3.splice(2,3);
console.log(arr3);   //[ 2, 3, 7, 8 ]
//增加
arr3.splice(1,0,9,10);
console.log(arr3);  //[ 2, 9, 10, 3, 7, 8 ]
//替换
arr3.splice(0,3,8,7,3);  //[ 8, 7, 3, 3, 7, 8 ]
console.log(arr3);

最后再小结一下:

会改变原数组的方法:copyWithin()、fill()、join()、pop()、push()、shift()、unshift()、sort()、reverse()、splice();

不会改变原数组的方法:every()、some()、filter()、find()、findIndex()、indexOf()、lastIndexOf()、map()、forEach()、reduce()、reduceRight()、valueOf()、slice();

相关推荐:

对JavaScript数组的方法总结

JavaScript数组中的indexOf方法

以上是javascript中對數組的方法的總結(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn