簡體   English   中英

如何在JavaScript中創建嵌套數組?

[英]How can I create a nested array in JavaScript?

使用以下代碼:

var result = [];
result.push({success : 1});
for (var i = 0; i < rows.length; i++) {
    result.push({email : rows[i].email});
};

我創建一個看起來像這樣的數組:

[
  {
    "success": 1
  },
  {
    "email": "email1@email.com"
  },
  {
    "email": "email2@email.com"
  },
  {
    "email": "emailN@email.com"
  }
]

但是我想創建一個看起來像這樣的數組:

[
  {
    "success": 1
  },
  {
    "email": ["email1@email.com","email2@email.com","emailN@email.com"]
  }
]

我堅持這樣做的確切語法。 如何將一個數組放入另一個數組中?

結果中的email屬性包含一個Array ,因此為其創建一個。

var result = [];
var emails = [];

for (var i = 0; i < rows.length; i++) {
   emails.push(rows[i].email);
};

result.push({success : 1});
result.push({email: emails});
var result = [
  { success : 1 },
  { email   : rows.map(function(row) {
      return row.email;
    })
  }
];

一些解釋: rows是一個數組,而JS中的數組具有.map()方法,該方法可用於處理數組中的每個項目並返回具有處理后值的新數組。

對於每個項目,都會使用該項目的值調用一個函數,並且將從該函數返回的任何值添加到新數組中。

在這種情況下,該函數返回每個項目的email屬性,因此最終得到的是電子郵件地址數組,基本上就是您想要的。

編輯 :我最初的建議是使result成為對象:

var result = {
  success : 1,
  email   : rows.map(function(row) {
    return row.email;
  })
};

是否更好取決於數據結構的要求。

只需在帶有屬性emailresult對象中創建一個數組,然后將電子郵件推入其中。 見下文。

var result = [];
result.push({success : 1});
var emails = []
for (var i = 0; i < rows.length; i++) {
    emails.push(rows[i].email);
};
result.push({email: emails})
var finalResult = [];    
finalResult.push({success : 1});
var result = [];
for (var i = 0; i < rows.length; i++) {
    result.push(email : rows[i].email);
};

finalResult.push({"email" : result});

我認為上面的代碼會工作。

暫無
暫無

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

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