检查对象中的值是不是为空或空javascript
Posted
技术标签:
【中文标题】检查对象中的值是不是为空或空javascript【英文标题】:Check if value in object is null or empty javascript检查对象中的值是否为空或空javascript 【发布时间】:2017-11-07 04:56:15 【问题描述】:这是我的问题:我可以拥有这个对象数组:
[
"name": "Alex",
"code": "05422180283",
"pIva": "05422180283",
"subCode": null
,
"name": "John",
"code": null,
"pIva": null,
"subCode": "IT"
,
"name": "Billy",
"code": null,
"pIva": null,
"subCode": "IT"
,
"name": "Tom",
"code": null,
"pIva": null,
"subCode": "IT"
]
这个 json 被ng-repeat
使用在一个表单中,并且应该填充空字段。按下提交按钮时,系统应检查是否仍有空白字段。所以现在的情况可能是这样的:
[
"name": "Alex",
"code": "05422180283",
"pIva": "05422180283",
"subCode": null
,
"name": "John",
"code": "88985556",
"pIva": "1919ASVVV",
"subCode": "9991VVVV"
,
"name": "Billy",
"code": "89952366555",
"pIva": "BB588918989",
"subCode": "ASA234434"
,
"name": "Tom",
"code": null,
"pIva": "541198198",
"subCode": "ACEVV9999"
]
如您所见,有 2 个空字段。在这种情况下,系统应告知用户有 2 个空字段。 (带有警报或类似的东西)。否则用户可以毫无问题地提交表单。这是我到目前为止所做的:
angular.forEach($scope.myArray, function(items)
if(_.chain(items).find(_.isNull).isNull().value())
//console.log('Found one');
formHasEmptyFields = true;
else
//console.log('Did not find one');
formHasEmptyFields = false;
if(_(items).find(_.isNull) === null)
//console.log('Found one');
formHasEmptyFields = true;
else
//console.log('Did not find one');
formHasEmptyFields = false;
);
if(formHasEmptyFields == true)
alert('There are empty fields');
else
submitFunction($scope.myArray);
但它不起作用,因为它似乎只检查最后一个对象。事实上,如果我填写表格中的最后一个对象,它不会向我显示警报。任何想法? $scope.myArray
当然是我的对象数组
【问题讨论】:
能否附上你的html表单 【参考方案1】:问题在于,虽然formHasEmptyFields
确实在有null
时设置为true
,但在下一次迭代中它会再次被false
覆盖。
所以,要解决这个问题,只需在循环之前和循环内设置一次formHasEmptyFields = false;
,只保留将其设置为true
的代码。
话虽如此,some
或 every
方法对于这种情况比 forEach
循环更有用。您可能想改用它。
【讨论】:
那么,你的主要意思是删除else条件? 确实,放下它们。【参考方案2】:查看MDN docssome
const hasItemWhithFalsyCode = items.some(x => !x.code);
你可以做各种各样的事情,比如过滤掉没有代码的项目
const itemsWithTruthyCode = items.filter(x => x.code);
明确检查null
const hasItemWhithNullCode = items.some(x => x.code === null);
【讨论】:
确实,在这种情况下使用some
比使用forEach
更好:只要有一定的条件就退出循环。如果您专门为他们的案例提供代码,这将对 OP 很有用。以上是关于检查对象中的值是不是为空或空javascript的主要内容,如果未能解决你的问题,请参考以下文章
spark中的isNullOrEmpty函数检查数据框中的列是不是为空或空字符串