JS 数组对象判断属性值是否为空?

//实现效果://提交时判断黄金、白银、翡翠等数组对象中的值是否有输入。//1、如果全为空则不通过。//2、只要有一组weight与number有输入则通过。//注意:/... // 实现效果:
// 提交时判断 黄金、白银、翡翠等数组对象中的值是否有输入。
// 1、如果全为空则不通过。
// 2、只要有一组weight与number有输入则通过。
// 注意:
// 例如:黄金的weight有值,而number没值也是不能过。
// 必需要同一组的对象黄金的weight和number有值才能通过。
展开
 我来答
匿名用户
2020-09-17
展开全部
var arr=[
{ name:'黄金', weight:'', number:'' },
{ name:'白银', weight:'', number:'' },
{ name:'翡翠', weight:'', number:''}
]
// 方法1, 设置检查标记bool值, 遍历数组, 当 weight 和 number 都不为空时变更标记值
var result = false;
for(var item of arr){
if(item.weight != '' && item.number != ''){
result = true;
}
}
console.log(result?'通过':'不通过')

// 方法2, 使用 filter 过滤数组, 将数组中所有符合 weight 非空且 number 非空的数据保留, 其他的丢弃, 最终检查过滤后数组的长度是否大于0
var filter_res = arr.filter(item => item.weight != '' && item.number != '')
console.log(filter_res.length > 0 ? '通过': '不通过')
追问
你好,还有个小问题,
判断所有对象的weight 或 number 某一项有输入时必需同时有值 ,weight 和number都为空则不判断。
追答
和判断某一项符合的做法类似

先对 arr 做一次过滤, 把不符合条件的对象过滤掉, 如果过滤后的数组长度和原数组 arr 的长度完全一致, 则说明被过滤掉的不符合条件的对象是0个, 也就是 arr 数组中的对象均符合条件
var filter_res = arr.filter(item => item.weight != '' && item.number != '')
console.log(filter_res.length === arr.length ? '通过': '不通过')
网海1书生
科技发烧友

2020-09-17 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
var weights=document.getElementsByName("weight");
var numbers=document.getElementsByName("number");
if((weights[0].value&&numbers[0].value)||(weights[1].value&&numbers[1].value)||(weights[2].value&&numbers[2].value)){
//通过
}else{
//不通过
}
追问
数组并非固定3条数据,可以是无限条。
追答
无限条就这样呗:
var weights=document.getElementsByName("weight");
var numbers=document.getElementsByName("number");
var i;
for(i=0;i<weights.length;i++){
if(!(weights[i].value&&numbers[i].value))break;
}
if(i<weights.length){
//不通过
}else{
//通过
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式