摘要:在作項目的時候常常會遇到數組,並進行一堆的操做和方法,因此我在這裏進行一個總結,把常常遇到的記錄一下,但願能方便你們;數組
1.建立數組this
//建立一個空數組 var arr1 = new Array(); var arr2 = [];
2.Array.split()spa
解釋:將字符串轉化爲數組;prototype
let arr = 'abcd'; let str = arr.split(); console.log(str)// [a,b,c,d]
3.Array.toString()code
解釋:將數組轉化爲字符串(字符串間隔爲',');blog
let arr = [1, 2, 3, 4]; let str = arr.toString() console.log(str)// 1,2,3,4
4.Array.join()排序
解釋:與Array.toString同樣都是同樣將數組轉化爲字符串,不一樣的是能夠定義字符串的間隔符號;ip
let arr = [1, 2, 3, 4]; let str1 = arr.join() let str2 = arr.join('-') console.log(str1)// 1234 console.log(str2)// 1-2-3-4
5.Array.splice()字符串
解釋:很強大的數組方法,它有不少種用法,能夠實現刪除、插入和替換。格式做用爲Array.splice(開始位置, 刪除的個數,元素);get
let arr = [2, 0, 1, 9, 0, 2, 2, 0]; let arr1 = arr.splice(8, 0, '記載') let arr2 = arr.splice(2, 3) let arr3 = arr.splice(2, 1, '一') console.log(arr1) //[2, 0, 1, 9, 0, 2, 2, 0,'記載']第9位置新增一個元素 console.log(arr2) //[2,0,2,2,0] 從2位置開始刪除三個元素 console.log(arr3) //[2, 0, '一', 9, 0, 2, 2, 0] 從2位置替換一個元素
6.Array.push()和Array.pop()
解釋:push()爲在數組末尾添加元素,pop()爲在數組末尾移除元素;
var arr = [1,2,3,4]; var arr1= arr.push(5,6); console.log(arr); // [1,2,3,4,5,6] var arr2= arr.pop(); console.log(arr); // [1,2,3,4,5]
7.Array.shift()和Array.unshift()
解釋:shift()爲刪除數組的第一項,unshift爲將參數添加到數組的開頭;
var arr = [1,2,3,4]; var arr1= arr.shift(); console.log(arr); // [2,3,4] var arr2= arr.unshift(0,1); console.log(arr); // [0,1,2,3,4]
8.Array.sort()
解釋:將數組數據按升序排列(小-大);
var arr = [1, 3, 4, 2]; var arr1= arr.sort() console.log(arr1); // [1, 2, 3, 4]
9.Array.reverse()
解釋:將數組項反轉;
var arr = [1, 2, 3, 4]; var arr1 = arr.reverse(); console.log(arr1)); //[4,3,2,1]
10.Array.slice()
解釋:將數組進行截取成爲新的數組,格式爲array.slice(開始下標,結束下標);
var arr = [1,2,3,4,5,6]; var arr1 = arr.slice(1); var arr2 = arr.slice(1,4); console.log(arr1); //[1, 3, 5, 7, 9, 11](不變) console.log(arr2); //[2, 3, 4,5]
11.Array.forEach()
解釋:對數組進行循環遍歷;
var arr = [1, 2, 3, 4, 5]; arr.forEach(function(index,v){ console.log(index+'-'+v); });//0-1 1-2 -2-3 3-4 4-5
12.Array.filter()
解釋:將全部元素進行判斷,將知足條件的元素做爲一個新的數組返回;
let arr = [1, 2, 3, 4, 5] const arr1=> value => value >= 3 let newArr = arr.filter(arr1) //newArr = [3, 4, 5] 知足條件的元素返回爲一個新的數組
13.Array.concat()
解釋:將多個數組拼接成一個數組;
let arr1 = [1, 2, 3] let arr2 = [4, 5] let arr = arr1.concat(arr2) console.log(arr)//[1, 2, 3, 4, 5]
14.Array.replace()
解釋:將字符串某個字符進行刪除或替換;
let arr = 'abcd';
let str = arr.replace('b','');
console.log(str)// acd
let str = arr.replace('b','f');
console.log(str)// afcd
題目:
1.怎麼把數組裏面參數的每一個值取出,放到一個新數組裏面?
例如數組以下:
[ { num: 16, money: 500, day: "2019-03-15" }, { num: 17, money: 540, day: "2019-03-16" }, ]
思路:咱們應該建三個新數組,而後循環遍歷上方數組,而後取出每一個參數的值加入到新數組裏面;
var Array=上方數組 var newArrayday = [];//日期新數組 var newArraynum = [];//訂單數量新數組 var newArraymoney = [];//個人業績新數組 var j1 = 0; var j2 = 0; var j3 = 0; for(let i in Array){ newArrayday[j1++] = Array[i].day newArraynum[j2++] = Array[i].num newArraymoney[j3++] = Array[i].money } console.log(newArrayday) console.log(newArraynum) console.log(newArraymoney)
2.js去除數組中重複元素的四種方法?
Array.prototype.method1 = function(){ var arr[]; //定義一個臨時數組 for(var i = 0; i < this.length; i++){ //循環遍歷當前數組 //判斷當前數組下標爲i的元素是否已經保存到臨時數組 //若是已保存,則跳過,不然將此元素保存到臨時數組中 if(arr1.indexOf(this[i]) == -1){ arr.push(this[i]); } } return arr; }
Array.prototype.method2 = function(){ var h{}; //定義一個hash表 var arr[]; //定義一個臨時數組 for(var i = 0; i < this.length; i++){ //循環遍歷當前數組 //對元素進行判斷,看是否已經存在表中,若是存在則跳過,不然存入臨時數組 if(!h[this[i]]){ //存入hash表 h[this[i]] = true; //把當前數組元素存入到臨時數組中 arr.push(this[i]); } } return arr; }
Array.prototype.method3 = function(){ //直接定義結果數組 var arr=[] ; for(var i = 1; i < this.length; i++){ //從數組第二項開始循環遍歷此數組 //對元素進行判斷: //若是數組當前元素在此數組中第一次出現的位置不是i //那麼咱們能夠判斷第i項元素是重複的,不然直接存入結果數組 if(this.indexOf(this[i]) == i){ arr.push(this[i]); } } return arr; }
Array.prototype.method4 = function(){ //將數組進行排序 this.sort(); //定義結果數組 var arr=[]; for(var i = 1; i < this.length; i++){ //從數組第二項開始循環遍歷數組 //判斷相鄰兩個元素是否相等,若是相等說明數據重複,不然將元素寫入結果數組 if(this[i] !== arr[arr.length - 1]){ arr.push(this[i]); } } return arr; }
3.js去除複雜數組某個參數的方法?
var array=[ { id:1, num:2, price:100, name:'aaa', }, { id:2, num:5, price:200, name:'bbb', }, ] for(let i in array){ delete array[i].price; delete array[i].name; } //結果爲[{ id:1,num:2,},{ id:2,num:5,}]
以上僅僅爲數組的一些經常使用方法,還有一些不經常使用的未記錄,具體請參考權威Array方法,地址以下:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array