我有这个对象数组:
[Object, Object]
0: Object
{
date: ""
number: undefined
}
1: Object
{
date: ""
number: undefined
}
如果该值不为空,它总是说必需的。也许有人可以帮助我了解更多这方面的知识。
这是我的代码:
$(function(){
var len = $('#groupContainer > div').length;
var arr = [];
for(var i=0; i < len; i++){
var number = $('#number_' + [i + 1]);
var date = $('#date_' + [i + 1]);
console.log(number)
var a = number.map(function(){
return this.value;
});
var b = date.map(function(){
return this.value;
});
var newObj = {number: a[0], date: b[0]}
arr.push(newObj);
}
for(var c = 0; c < arr.length; c++)
{
var count = c + 1;
var message ="";
for(var d in arr[c])
{
if(arr[c].hasOwnProperty(d))
{
if(arr[c][d] == "")
{
message = d + ' is required!';
}
message += message + "\n";
}
}
alert('Group: ' + count + ' ' + message + '\n');
}
});
最佳答案
空的检查似乎工作正常。 “第 1 组”中的两个字段都有一个值,并且其消息中没有提及任何一个为“必填”。
不过,您对构建message
的方式有疑问,至少两次报告单个属性:
"Group: 2 date is required!date is required!"
这是由于对 message
的这些修改:
if(arr[c][d] == "")
{
message = d + ' is required!';
}
message += message + "\n";
通过使用赋值运算符 (=
) 修改 message
的第一行将丢弃 message
可能持有的任何先前值.
var message = "something previous"
message = 'property' + ' is required!';
console.log(message); // "property is required!"
然后另一行复制了 message
的内容,将其附加到自身:
// same as `message = message + message + "\n";`
message += message + "\n";
console.log(message); // "property is required!property is required!\n"
修改方法是仅在找到空字段时修改 message
并将添加的内容连接到先前的值。
if(arr[c][d] == "")
{
message += d + ' is required!\n';
// ^ concatenate onto the previous `message` value
// including the `\n` here
}
// remove the other modification
关于javascript - 如何知道javascript中的对象数组中是否有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32878581/