我有5位联系人与某公司建立了联系,我正在尝试用下面的代码来筛选出没有电子邮件的联系人。
var mailArray = @All of Email with nulls
var temp = new Array()
for (var i = 0; i < mailArray.length; i++) {
if (mailArray[i].value == null) {
temp.push("null")
}
else {
temp.push("correct")
}
}
temp.join(" ")
现在我只是推动字符串以确保流正确,但是返回
null null null null null
何时返回
null correct correct null null
因为第二和第三位联系人都有电子邮件。任何人都可以帮助我或给我一个提示,例如如何使用函数@All的返回值。
答案 0 :(得分:0)
我只想确保您在电子邮件中指的是什么。是通讯录应用中的电子邮件字段,还是称为“电子邮件”的文本字段?如果使用的是电子邮件字段,则[i]索引上的值实际上是另一个对象,而不仅仅是一个字符串。虽然只检查现有内容并不重要,但是我个人想知道哪些联系人的输出中确实有电子邮件。
如果只是文本字段,则条件语句存在问题。应该是===
而不是==
,但我个人只是将其重写为!mailArray[i]
。
为便于阅读,我建议您将输出更改为降价表。这是我最终得到的代码:
var mailArray = @All of Email text with nulls
var nameArray = @All of Name with nulls
var temp = new Array()
var table = "Email | Contact \n --- | --- "
for (var i = 0; i < mailArray.length; i++) {
if (!mailArray[i].value){// !== null) {
temp.push("correct")
temp.push(mailArray[i])
table +="\n"+ mailArray[i] + " | " + nameArray[i]
}
else {
temp.push("null")
table +="\n"+ mailArray[i] + " | " + nameArray[i] + "\n"
temp.push(mailArray[i])
}
}
temp.join(" ")
write = table
这将输出下表(3个联系人,2个带有电子邮件,一个不带):