[英]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.