使用以下代码:
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"]
}
]
我坚持这样做的确切语法。如何将数组放在另一个数组中?
答案 0 :(得分:5)
结果中的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});
答案 1 :(得分:5)
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;
})
};
这是否更好取决于数据结构的要求。
答案 2 :(得分:3)
只需在属性result
的{{1}}对象中创建一个数组,然后将电子邮件推入其中。见下文。
email
答案 3 :(得分:1)
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});
我认为上面的代码会起作用。