0%

JS核心-(29)-物件-陣列

前言

陣列操作後,會就地修改原陣列,或是回傳一個新陣列,並沒有一定的規則

陣列的基本觀念

陣列十字宣告陣列方式

var newArray = [];

陣列中如果要新增資料,不需要宣告屬性並且用 , 隔開就可以了

var newArray = [
    1,
    '字串',
    false,
    {
        name: '小明'
    }
];

console.log(newArray);

可以看到印出來的 (4) 這個數字代表陣列的長度,那麼我們知道陣列也是物件型別的資料,所以也可以新增屬性

var newArray = [
    1,
    '字串',
    false,
    {
        name: '小明'
    }
];
newArray.color = 'red';
console.log(newArray);

新增屬性以後會發現,陣列的長度還是沒有改變,所以新增的屬性並不會被算在陣列的資料長度中


新增陣列中的資料

除了一開始訂好的陣列結構之外,我中途想要新增陣列的內容的話,有哪些方法呢?

1. push

push 是最常用的一個方法,他會在陣列最後一個位置新增你要的值

var newArray = [
    1,
    '字串',
    false,
    {
        name: '小明'
    }
];
newArray.color = 'red';

newArray.push('100年');

var aa = 'aa';

newArray.push(aa);

console.log(newArray);

你可以直接在 push 後面的 ( ) 中,放入你想要傳入的資料結構,或是用一個變數承裝後,放入變數,

都可以達到一樣的效果。

2. 使用中括號 [ ]

var newArray = [
    1,
    '字串',
    false,
    {
        name: '小明'
    }
];
newArray.color = 'red';

newArray[5] = {x: 1};

console.log(newArray);

使用中括號還有一個特別要注意的地方就是,如果你今天跳號了,那麼中間的缺會自動補上 undefined ,並且會計算

undefined 到陣列的長度裡面。

基礎的方法就先介紹這兩種,還有很多其他處理陣列的方法,可以看先前的這篇文章 陣列補充觀念


取用陣列中的資料

要取用陣列的資料首先要先了解 索引值 (index) 的觀念,索引值是從 0 開始,而0則對應下方範例的第一筆資料,

也就是 1,索引值 1 則對應第二筆資料,也就是 '字串' …以此類推。

所以如果以這樣的結構為例,我要取得第三個布林值的 false 的話,他的索引值是 2 ,我就要使用 Array[2] ,取得資料

var Array = [
    1,
    '字串',
    false,
    {
        name: '小明'
    }
];

console.log(Array[2]);

注意喔,陣列取值的時候是不能用 . ,例如 Array.2 ,這樣是不行的

利用 for 迴圈將資料全部印出來

要將陣列裡的每一筆資料全部印出來,首先要先知道你的陣列的長度要怎麼取,取陣列的方法是 陣列.length

var Array = [
    1,
    '字串',
    false,
    {
        name: '小明'
    }
];

console.log(Array.length); // 4

再用for迴圈印出所有的陣列內容

var Array = [
    1,
    '字串',
    false,
    {
        name: '小明'
    }
];

console.log(Array.length); // 4

for(var i = 0; i < Array.length; i++){
    console.log(Array[i]);
}

這樣就可以把陣列一個一個取出來囉!