簡體   English   中英

切片多維JSON數組中列的最后2個對象

[英]Slice last 2 objects of a column in multidimensional JSON array

我可能忽略了一個有同樣問題的話題。 但我似乎無法弄清楚。 我想刪除列中的最后一個項目。 嘗試了 forEach 但它對我不起作用,它刪除了 myArr 的完整第一列(例如)。 Maby 而不是刪除一個 Slice?

例如,我有這個 JSON 數組 (myArr):

    let myArr = JSON.parse(this.responseText);
    let myColumnYears = Object.keys(myArr);
    let myColumnInhabitants = 
    Object.values(myArr[0]);

    myArr.forEach(function() {
          delete myColumnYears[0];
        });

[
 {
    "1996": "7959017",
    "1997": "7968041",
    "1998": "7976789",
    "1999": "7992324",
},
{
    "1996": "10156637",
    "1997": "10181245",
    "1998": "10203008",
    "1999": "10226419",
},
{
    "1996": "7071850",
    "1997": "7088906",
    "1998": "7110001",
    "1999": "7143991",
}
]

我想刪除每個數組的最后 2 個對象,因此結果變為:

[
{
   "1996": "7959017",
   "1997": "7968041",
},
{
   "1996": "10156637",
   "1997": "10181245",

},
{
   "1996": "7071850",
   "1997": "7088906",
}
]

我想我沒有更具體一點。

您可以使用.map()遍歷數組,選擇您感興趣的屬性,並將其作為對象返回。

 let data = [ {"1996": "7959017", "1997": "7968041", "1998": "7976789","1999": "7992324"}, {"1996": "10156637", "1997": "10181245", "1998": "10203008", "1999": "10226419" }, {"1996": "7071850", "1997": "7088906", "1998": "7110001", "1999": "7143991" } ]; let result = data.map(o => ({"1996": o["1996"], "1997": o["1997"]})); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

如果對象中有更多的密鑰對值,會發生什么? 您將需要修改map功能。

為避免這種情況,您可以使用另一種方法來解決此問題。 嘗試在對象中添加更多鍵值對,此代碼將始終刪除最后兩個鍵值對。

 let data = [ {"1996": "7959017", "1997": "7968041", "1998": "7976789","1999": "7992324"}, {"1996": "10156637", "1997": "10181245", "1998": "10203008", "1999": "10226419" }, {"1996": "7071850", "1997": "7088906", "1998": "7110001", "1999": "7143991" } ]; data.forEach((element, index) => { const keys = Object.keys(element); delete element[keys[keys.length - 1]]; delete element[keys[keys.length - 2]]; }); console.log(data); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

暫無
暫無

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

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