我有這個小問題,但我很接近。
我有一個包含 100 個物件的物件陣列。[0-99]
我想在當前物件 99 的末尾再添加 100 個或更多物件。
我得到的是 [0-99], 100: [0-99]
讓我給你看一下代碼:
addEntry = (newEntry) => {
let newSortedData = [];
// Parse any JSON previously stored in allEntries
let existingEntries = JSON.parse(sessionStorage.getItem("magic1")).data;
if (existingEntries === null) {
existingEntries;
}
sessionStorage.setItem("magic1", JSON.stringify(newEntry));
// Save allEntries back to local storage
existingEntries.push(newEntry[0].data);
console.log("existing entries with push for new ones: ", existingEntries);
table.clear().draw();
newSortedData.push(existingEntries);
table.rows.add(_.sortBy(newSortedData, "title")); // Add new data
table.columns.adjust().draw(); // Redraw the DataTable
console.log("Existing and new ones sorted: ", newSortedData[0].data);
sessionStorage.setItem("magic1", JSON.stringify(newSortedData[0].data));
};
我得到的是這樣的:
magic1 從陣列中的 100 個物件開始。我從哪里獲取資料,有 7000 個專案/產品。我正在使用 PHP 從源中提取資料。它們只出現在第 1 - 70 頁,每頁有 100 個物件。因此,7000 個物件。這是我必須這樣做的一種奇怪的方式,但我必須 PING 服務器經過 100、201、301、401、501、601 等等,通過對服務器的所有 70 次點擊,一次 100 個專案。他們只是不能給我一個 getRowcount() 作為 SQL 中的行數。我必須不斷地 ping 或點擊服務器,直到我得到少于 100 的專案數,這意味著我已經點擊了少于 100 的最后一頁。
這是一個陣列的結尾和新陣列的開頭的樣子。
我想要做的就是繼續附加額外的頁面以繼續計數 100、101、102,一直到 199。然后是 200、201、201 - 299 等等。顯然 obj.push(newObj) 做了你在圖片中看到的。

OF注意:當我到達這部分代碼時:
existingEntries.push(newEntry[0].data);
existingEntries 和 newEntry[0].data 都只有物件。沒有像 data: ... 這樣的前綴。那么,為什么我不能按字母順序附加然后按“標題”排序所有內容 0 - 199 而不是 0-99, 100: 0-99???
謝謝
uj5u.com熱心網友回復:
如果newEntry[0].data是一個陣列,您可以將其展開:
existingEntries.push(...newEntry[0].data);
或者只是使用 concat 而不是 push:
existingEntries.concat(newEntry[0].data)
uj5u.com熱心網友回復:
我認為問題在于連接兩個陣列(existingEntries和newEntry[0].data)。Array.push()不合并兩個陣列,而是將另一個陣列放在陣列的末尾。
let a1 = ['a', 'b'], a2 = ['c', 'd'];
a1.push(a2);
console.log(a1) // ['a', 'b', ['c', 'd']]
你可以用Array.concat()它來做。
let a1 = ['a', 'b'], a2 = ['c', 'd'];
a1 = a1.concat(a2);
console.log(a1) // ['a', 'b', 'c', 'd']
注意Array.concat()回傳一個新陣列。
變化:
// this
existingEntries.push(newEntry[0].data);
// to this
existingEntries = existingEntries.concat(newEntry[0].data);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/387111.html
標籤:javascript json
