創建陣列的三種方式
1、使用 new 關鍵字,就能簡單地宣告并初始化一個陣列,用這種方式,還可以創建一個指定長度的陣列,
2、直接將陣列元素作為引數傳遞給它的構造器
3、只用中括號([ ])的形式
let daysOfWeek = new Array(); // {1}
let daysOfWeek = new Array(7); // {2}
let daysOfWeek = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); // {3}
let daysOfWeek = [];
訪問元素和迭代陣列
for (let i = 0; i < daysOfWeek.length; i++){
console.log(daysOfWeek[i])
}
求斐波那契數列的前 20 個數
const fibonacci = []
fibonacci[1] = 1;
fibonacci[2] = 1;
for (let i = 3; i <20 ; i++){
fibonacci[i] = fibonacci[i-1] + fibonacci[i-2]
}
console.log(fibonacci)
添加、洗掉 元素
push 方法,把元素添加到陣列的末尾
const numbers = [1,1]
numbers.push(2)
unshift方法,把數值插入陣列的開頭
numbers.unshift(3)
console.log(numbers) // [3, 1, 1, 2]
pop方法從陣列末尾洗掉元素
numbers.pop()
console.log(numbers) // [3, 1, 1]
shift方法從陣列開頭洗掉元素
splice 方法洗掉在任意位置添加或洗掉元素
splice 第一個引數,表示元素的索引值,第二個引數是洗掉的個數,第三個引數往后,就是要添加到陣列里的值,
numbers.splice(2,0,4); // 從陣列索引 2 開始的 1 個元素 不是洗掉元素,所以傳入 0
console.log(numbers)
迭代二維陣列的元素
const averageTemp = []
averageTemp[0] = [];
averageTemp[0][0] = 72;
averageTemp[0][1] = 75;
averageTemp[0][2] = 79;
averageTemp[0][3] = 79;
averageTemp[0][4] = 81;
averageTemp[0][5] = 81;
averageTemp[1] = [];
averageTemp[1][0] = 81;
averageTemp[1][1] = 79;
averageTemp[1][2] = 75;
averageTemp[1][3] = 75;
averageTemp[1][4] = 73;
averageTemp[1][5] = 73;
// 一層一層的回圈
function printMa(arr){
for(let i= 0; i<arr.length; i++){
for (let j = 0; j< arr[i].length; j++){
console.log(arr[i][j])
}
}
}
printMa(averageTemp)
陣列合并
concat 方法可以向一個陣列傳遞陣列、物件或是元素,
const zero = 0;
const positiveNumbers = {age :1, name:2};
const negativeNumbers = [-3, -2, -1];
let numbers = negativeNumbers.concat(zero, positiveNumbers);
console.log(numbers) //[0,-3, -2, -1,{...}]
迭代器函式
有時,我們需要迭代陣列中的元素
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
const isEven = x => x % 2 == 0
every方法會迭代陣列中的每個元素,直到回傳 false
numbers.every(isEven) // false
some方法 它和 every 的行為相反
numbers.some(isEven) //ture
forEach 方法 它和使用 for 回圈的結果相同
numbers.forEach(x => console.log(x))
map 方法 會保存 isEven 函式的運行結果
const myMap = numbers.map(isEven);
console.log(myMap)
// [false, true, false, true, false, true, false, true, false, true, false, true, false, true, false]
filter方法,它回傳的新陣列由使函式回傳 true 的元素組成
const evenNumbers = numbers.filter(isEven);
console.log(evenNumbers) //[2, 4, 6, 8, 10, 12, 14]
reduce方法
reduce 方法接收一個有如下四個引數的函式:previousValue、currentValue、index 和 array,因為 index 和 array 是可選的引數,所以如果用不到它們的話,可以不傳,這個函式會回傳一個將被疊加到累加器的值,reduce 方法停止執行后會回傳這個累加器,如果要對一個陣列中的所有元素求和,這就很有用,
numbers.reduce((previous, current) => previous + current);
// 120
ECMAScript 6 和陣列的新功能
ES2015 和 ES2016 新增的陣列方法:

輸出陣列為字串
toString 方法把陣列里所有元素輸出為一個字串.
let numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
console.log(numbers.toString());
// 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
join 方法 用一個不同的分隔符(比如-)把元素隔開.
const numbersString = numbers.join('-');
console.log(numbersString);
// 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-10
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/290208.html
標籤:其他
上一篇:【三萬字!】Dubbo、Zookeeper學習筆記!秒殺面試官!——雙非上岸阿里巴巴系列
下一篇:JavaScript事件回圈機制
