簡體   English   中英

Javascript:如何切片對象數組?

[英]Javascript : how to slice an array of objects?

所以,我有一個這樣的對象數組:

    for(var i=0; i<travelcard_table.length;i++){
        var table_row = travelcard_table.eq(i);
        var ii = 0;
        passenger_info[i] = {};
        table_row.find("td").each(function() {
                passenger_info[i][table_keys[ii]] = $(this).text();
                ii++;
        });
    }

passenger_info[0]['First name'] = "John"; etc..
passenger_info[1]['First name'] = "Chuck"; etc..

我試圖每10個條目將其拆分為較小的對象數組,所以它是這樣的:

var size = 10;
for (var i=0; i<passenger_count; i+=size) {
    var smallarray = passenger_info.slice(i,i+size); << "Error: Slice is not a function"
    console.log(smallarray);
    // do something with smallarray
}

如何實現呢?

var passenger_info = [[], []];

passenger_info[0]['First name'] = "John";
passenger_info[1]['First name'] = "Chuck"; 
var sliced = passenger_info.slice(0,1);
alert(sliced[0]['First name']);

這會警告“ John”,因為passenger_info是一個數組對象數組,並且您正在將屬性附加到數組對象而不是其項。

對於對象數組,應為:

var passenger_info = [ {} , {}];

passenger_info[0].firstname = "John";
passenger_info[1].firstname = "Chuck"; 
var sliced = passenger_info.slice(0,1);
alert(sliced[0].firstname);

這樣你就可以鍛煉

for (var i=0; i<passenger_info.length; i+=10) {  
var smallArray = [];
    for(var j=0;j<10 && i+j < passenger_info.length;j++) {
        smallArray.push(passenger_info[i+j]);
    }
    console.log(smallArray);
}

使用切片你可以這樣做

for (var i=0; i<passenger_info.length; i+=10) {  
    var smallArray = [],ls;
        for(var j=0;j<10 && i+j < passenger_info.length;j++) {
            ls = i+j;
        }
        smallArray  = passenger_info.slice(i,ls+1); 
console.log(smallArray);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM