如何在JavaScript中创建嵌套数组?
代码如下:如何在JavaScript中创建嵌套数组?,javascript,arrays,node.js,Javascript,Arrays,Node.js,代码如下: 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@
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
属性包含一个数组
,因此请为其创建一个数组
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结果=[];
var=[];
对于(变量i=0;i
var finalResult=[];
finalResult.push({success:1});
var结果=[];
对于(变量i=0;i
我认为上面的代码可以工作。只需在
结果
对象中使用属性电子邮件
创建一个数组,然后将电子邮件推入其中。见下文
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结果=[];
result.push({success:1});
var电子邮件=[]
对于(变量i=0;i
一些解释:行
是一个数组,JS中的数组有一个方法,可以用来处理数组中的每个项,并返回一个带有处理值的新数组
对于每个项,使用项的值调用一个函数,从该函数返回的值将添加到新数组中
在本例中,该函数返回每个项目的email
属性,因此您最终得到一个电子邮件地址数组,这基本上就是您想要的
编辑:我最初的建议是将结果
改为对象:
var result = {
success : 1,
email : rows.map(function(row) {
return row.email;
})
};
这是否更好取决于对数据结构的要求。另外,您并不是在创建“JSONArray”。您正在创建一个JavaScript数组,该数组在输出到控制台时被序列化为JSON。
result
是一个array
,您不能在JavaScript中为数组指定索引。(例如:result.email
)@Cristy如果可以的话,这通常被认为是一种不好的做法,因为你无法使用普通的数组方法获得它。“但我相信这就是你的意思。”克里斯蒂,接得好。那完全是我的疏忽。我已经更新了我的答案。很好且干净的解决方案,需要注意的一点是,结果
将是一个对象
,而不是像他的示例中那样的数组。我想你也应该留下你的初始解决方案,还提到对结果使用对象
而不是数组
将使一切变得更干净、更容易处理:)@Cristy我不认为我比OP更了解数据的结构(只是它应该如何创建)@robertklep请使用初始解决方案编辑您的解决方案,以便更好地理解,谢谢
var result = [
{ success : 1 },
{ email : rows.map(function(row) {
return row.email;
})
}
];
var result = {
success : 1,
email : rows.map(function(row) {
return row.email;
})
};