[英]Javascript want to push objects into array
我想在 JS 中將對象推送到數組(mainArr)中。 下面是我的代碼:
var object = {1: 15, 2: 30};
var mainArr = ['settingsData'];
var values = Object.values(object);
var final = [];
var counter = 0;
var portion = {};
for (var key in object) {
if (counter !== 0 && counter % 1 === 0) {
final.push(portion);
mainArr.push(portion)
portion = {};
}
portion[key] = values[counter];
counter++
}
final.push(portion);
mainArr.push(portion)
console.log(mainArr)
我在控制台中看到如下輸出: ["settingsData", {1: 15}, {2: 30}]
但我想要這樣的輸出:
{ "settingsData":[{"1":"4"},{"2":"3"}] }
您可以將單個鍵/值對映射為新條目。
var object = { 1: 15, 2: 30 }, settingData = Object.entries(object).map(keyValue => Object.fromEntries([keyValue])), result = { settingData }; console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案已被接受,但 OP 確實要求我將我的評論作為答案。
這大大簡化了您的方法:
// Create a new object to start with:
let main = {"settingsData": []};
// Then push to the inner array:
main.settingsData.push({1:15});
如果我理解正確,這將起作用:
var object = {1: 15, 2: 30};
var mainArr = {'settingsData': []};
var values = Object.values(object);
var final = [];
var counter = 0;
var portion = {};
for (var key in object) {
if (counter !== 0 && counter % 1 === 0) {
final.push(portion);
mainArr.push(portion)
portion = {};
}
portion[key] = values[counter];
counter++
}
final.push(portion);
mainArr.settingsData.push(portion)
console.log(mainArr)
編輯:(根據評論中的要求添加說明)
您所做的是將每個元素推送到包含['settingsData']
現有數組中。 但是您所做的是向位於鍵settingsData
的數組添加項目。
因此,更改是將mainArr
設置為包含字段settingsData
的對象,並使用空數組作為值,這是在const mainArr = { settingData: []}
然后使用mainArr.settingsData.push(newValue)
對settingsData
包含的數組進行mainArr.settingsData.push(newValue)
。
如果您需要進一步解釋,請詢問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.