1. 程式人生 > >ES6中的一些陣列操作

ES6中的一些陣列操作

首先說一些ES3的陣列方法

  • split()講一個字串分割成字串陣列
  • splice(規定位置開始,數量,可選–新增新專案)方法是從陣列中新增、刪除
  • slice(從什麼位置開始取值,可選–結束位置–但是不包括結束位置)用於取值
  • push(值)從陣列末尾新增一個或多個元素
  • pop()用於刪除陣列最後一位元素
  • unshift(值)從陣列開始新增一個或多個元素
  • shift()用於刪除陣列第一位元素
  • join(字元)將陣列元素通過指定的字元連線成字串
  • concat(陣列1,陣列2,…)用於連線兩個或者多個數組
  • reverse()陣列元素顛倒順序
  • sort(fn)對陣列進行排序

var a=[1,2,3,5,10,25]; console.log(a.sort()); // [1,10,2,25,3,5]

修改:

var array=[15,5,10,2,0]; array.sort((a,b)=>{return a-b}); console.log(array); // [0,2,5,10,15]

引數a,b分別表示陣列中的任意兩個元素,若 return > 0 則表示 則b前a後(後來居上原則)。若 return < 0 則表示 a前b後。 物件排序:

let obj_list=[{ name:‘li’, value:99 },{ name:‘chen’, value:100 },{ name:‘huang’, value:1 }] console.log(obj_list.sort((a,b)=>{return a.value-b.value})) // 排序結果:‘huang’,‘li’,‘chen’

shot進行隨機排序 讓返回的隨機數 大於0和小於0 的概率一樣即可

let array=[1,2,3,5,7,8,11,21,33]; function ran(){ return 0.5 - Math.random(); } array.sort(ran()); console.log(array); // [1,11,2,21,3,33,5,7,8]

ES6陣列操作 indexOf(“值”):返回在陣列中第一個找到值的位置,若是不存在就返回-1

let str=“wondermaomao” console.log(str.indexOf(‘w’)) //-----返回1 console.log(str.indexOf(‘i’)) //—返回-1

對於陣列操作

var arr=[‘666’,‘orange’,‘apple’]; console.log(arr.indexOf(‘app’),arr.indexOf(‘apple’)); // -1 2

forEach()遍歷陣列

let array1 = [‘j’, ‘a’, ‘v’, ‘a’, ‘n’]; array1.forEach(element=> { console.log(element); });//遍歷出j a v a n

map(回撥函式):對映,用法和forEach

var a1 = [‘a’, ‘b’, ‘c’]; var a2 = a1.map(function(item) { return item.toUpperCase(); }); console.log(a2); // logs A,B,C

var a=[1,32,442,234]; b=a.map((item)=>{return item+1;}); // ES6箭頭函式語法,看不懂的同學可以先去學下ES6 console.log(a,b); // [1,32,442,234] [2,33,443,235]

具體的可以看:ES6陣列操作 filter過濾篩選,將符合要求的元素返回出來

var a1 = [‘a’, 10, ‘b’, 20, ‘c’, 30]; var a2 = a1.filter(function(item) { return typeof item == ‘number’; }); console.log(a2); // logs 10,20,30

some(函式)–表示或者的意思,只要陣列中任意一項滿足函式體都成立

function isnumber(argument) { return typeof argument ==‘number’; } var arr1 = [1,2,3]; console.log(arr1.some(isnumber)); var arr1 = [1,“2”,3]; console.log(arr1.some(isnumber)); var arr1 = [“1”,“2”,“3”]; console.log(arr1.some(isnumber));

reduce(回撥函式):從左向右遍歷

var a = [10, 20, 30]; var total = a.reduce(function(first, second) { return first + second; }, 0); console.log(total) // Prints 60

reduceRight(回撥函式):從右到左遍歷 和reduce用法一樣只是遍歷方向不同