簡體   English   中英

Javascript想要將對象推入數組

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

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