我是Java的新手。现在,这里有一个包含多个对象的数组。因此,我想对其进行迭代,如果任何对象符合条件,那么我想返回一个值并停止该循环。
我的obj数组就像
var obj = [ { type: "", numberOfQuestions:"", technology:"" }, { type: "1", numberOfQuestions:"4", technology:"abcd" }, { type: "", numberOfQuestions:"6", technology:"ass" } ]
我的条件是,
validateData(data) {
data.High.map((object) => {
if((object.type === "") || (object.numberOfQuestions === "") || (object.technology === "")) {
return true;
} else {
return false;
}
});
}
因此,我想要的是具有某些键的任何对象的任何键都具有空值,即""
然后我想返回一个真值,以便可以执行其他操作。
我该怎么办?
任何人都可以帮助我。
答案 0 :(得分:2)
您可以为此使用过滤器功能,它会在条件
下返回数组 var container = [ { type: "", numberOfQuestions:"", technology:"" }, { type: "1", numberOfQuestions:"4", technology:"abcd" }, { type: "", numberOfQuestions:"6", technology:"ass" } ]
container.filter((a)=>{ return a['type'] == "" ? a : a['numberOfQuestions'] == "" ? a : a['technology'] == "" ? a : '' }).length > 0 ? true : false;
答案 1 :(得分:1)
您可以使用Array.prototype.some
var array = [...];
function validateData (array) {
return array.some(item => item.type === '' || item.numberOfQuestions === '' || item.technology === '');
}
validateData(array);
这是ES6解决方案(带有箭头功能)。
ES5解决方案:
function validateData (array) {
return array.some(function(item) {
return item.type === '' || item.numberOfQuestions === '' || item.technology === '';
});
}
答案 2 :(得分:1)
您可以使用过滤器
var obj = [ { type: "", numberOfQuestions:"", technology:"" }, { type: "1", numberOfQuestions:"4", technology:"abcd" }, { type: "", numberOfQuestions:"6", technology:"ass" } ]
obj.filter((a)=>{ return a['type'] == "" ? a : a['numberOfQuestions'] == "" ? a : a['technology'] == "" ? a : '' }).length > 0 ? true : false;
答案 3 :(得分:0)
使用数组reduce
obj = [ { type: "", numberOfQuestions:"", technology:"" }, { type: "1", numberOfQuestions:"4", technology:"abcd" }, { type: "", numberOfQuestions:"6", technology:"ass" } ];
obj = obj.find(function(item){ if (!(item.type === '' || item.numberOfQuestions === '' || item.technology === '')){ return item; } });
console.log('array : ', obj);
答案 4 :(得分:0)
首先,请不要在对象中使用=
,请使用:
。如果要动态检查密钥,请使用此代码
const validateData = (data) => {
data.map((object) => {
Object.keys(object).map((innerObj) => {
if(object[innerObj] === "") {
return true;
} else {
return false;
}
})
});
}
var obj = [{ type: "", numberOfQuestions:"", technology:"" },
{ type: "1", numberOfQuestions:"4", technology:"abcd" },
{ type: "", numberOfQuestions:"6", technology:"ass" }];
validateData(obj);
答案 5 :(得分:0)
无论键名如何(使用es6语法),此方法都可以使用。
var data = [ { type: "", numberOfQuestions:"", technology:"" }, { type: "1", numberOfQuestions:"4", technology:"abcd" }, { type: "", numberOfQuestions:"6", technology:"ass" } ]
const checkNull = (data) => data.some(item => Object.keys(item).some(key => item[key] == ''));
console.log(checkNull(data));