这是我的每个函数,我如何识别每个循环的最后一个索引
var mailtest = '';
$.each(data.getEmail, function (i) {
$.each(data.getEmail[i], function (key, val) {
if(key == 'personal_email'){
mailtest += val+';';
}
});
});
alert(mailtest);
因为我得到这样的输出,在这个我不想要;最后
输出:
test@gmail.com; test1@gmail.com; test2@gmail.com; test3@gmail.com;
我想要的输出:
test@gmail.com; test1@gmail.com; test2@gmail.com; test3@gmail.com
很简单:
var mailtest = [];
$.each(data.getEmail, function (i) {
$.each(data.getEmail[i], function (key, val) {
if(key == 'personal_email'){
mailtest.push(val)
}
});
});
console.log(mailtest.join(";"));
注意:如果您发布了数据示例,我们可能会找到一张地图,可以在一行中获取它
您可以使用join()
. 只要你的数据结构与此类似
var data = {
getEmail: [
{
personal_email: 'test@gmail.com'
},
{
personal_email: 'test1@gmail.com'
},
{
personal_email: 'test2@gmail.com'
},
]
}
console.log(
data.getEmail.map(a=>a.personal_email).join("; ")
)
我建议你使用Array的方法,方法如下:
-
首先过滤(
.filter
(数组 -
然后映射它 (
.map
( -
最后将其连接成一个字符串 (
.join
(
代码如下:
var mailtest = '';
$.each(data.getEmail, function(i) {
mailtest += data.getEmail[i]
.filter((key, val) => (key == 'personal_email'))
.map((key, val) => val)
.join(';')
});
alert(mailtest);
或者你可以删除字符串的最后一个字符:
mailtest.substring(0, mailtest.length - 1);