JS 数组对象判断属性值是否为空?
//实现效果://提交时判断黄金、白银、翡翠等数组对象中的值是否有输入。//1、如果全为空则不通过。//2、只要有一组weight与number有输入则通过。//注意:/...
// 实现效果:
// 提交时判断 黄金、白银、翡翠等数组对象中的值是否有输入。
// 1、如果全为空则不通过。
// 2、只要有一组weight与number有输入则通过。
// 注意:
// 例如:黄金的weight有值,而number没值也是不能过。
// 必需要同一组的对象黄金的weight和number有值才能通过。 展开
// 提交时判断 黄金、白银、翡翠等数组对象中的值是否有输入。
// 1、如果全为空则不通过。
// 2、只要有一组weight与number有输入则通过。
// 注意:
// 例如:黄金的weight有值,而number没值也是不能过。
// 必需要同一组的对象黄金的weight和number有值才能通过。 展开
2个回答
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 ? '通过': '不通过')
{ 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 ? '通过': '不通过')
展开全部
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{
//不通过
}
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{
//通过
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询