Javascript 如何使下面的函数返回true或false?
以下函数检查某些对象是否具有属性Javascript 如何使下面的函数返回true或false?,javascript,function,Javascript,Function,以下函数检查某些对象是否具有属性缩略图。如果对象有缩略图,我希望它返回true,如果对象没有缩略图,则返回false: function hasThumbnail (key, object) { Object.keys(object).forEach(key => { const value = object[key] if (value.constructor === Array) { value.forEach(obj => { i
缩略图
。如果对象有缩略图,我希望它返回true
,如果对象没有缩略图,则返回false
:
function hasThumbnail (key, object) {
Object.keys(object).forEach(key => {
const value = object[key]
if (value.constructor === Array) {
value.forEach(obj => {
if (obj.thumbnail) {
return true
} else {
return false
}
})
}
})
但是,现在函数不返回任何内容。如何使函数return
true
或false
?您有一个forEach
,但是return
在循环中刚好结束循环,因此您需要这样做:
function hasThumbnail (key, object)
{
var ret = false;
Object.keys(object).forEach(key => {
const value = object[key]
if (value.constructor === Array) {
value.forEach(obj => {
if (obj.thumbnail) {
ret = true;
return;
} else {
ret = false;
return;
}
})
}
});
return ret;
}
这段代码没有经过测试,我更喜欢jQuery,但是返回的概念不在循环中工作应该与vanilla JS相同。您有一个
forEach
,但是返回
在循环中只是结束了循环,所以您需要这样做:
function hasThumbnail (key, object)
{
var ret = false;
Object.keys(object).forEach(key => {
const value = object[key]
if (value.constructor === Array) {
value.forEach(obj => {
if (obj.thumbnail) {
ret = true;
return;
} else {
ret = false;
return;
}
})
}
});
return ret;
}
这段代码未经测试,我更喜欢jQuery,但返回不在循环中工作的概念应该与vanilla JS相同。如果发现,您可以使用inside从迭代中获得true
或false
function hasThumbnail (key, object) {
return Object.keys(object).some(key => {
const value = object[key]
if (value.constructor === Array) {
return value.some(obj => {
return obj.thumbnail;
});
}
});
}
如果找到,您可以使用inside从迭代中获取true
或false
function hasThumbnail (key, object) {
return Object.keys(object).some(key => {
const value = object[key]
if (value.constructor === Array) {
return value.some(obj => {
return obj.thumbnail;
});
}
});
}
这里有一种不那么冗长的方式:
function hasThumbnail(object) {
return Object.values(object).some(prop =>
Array.isArray(prop) && prop.some(x => x.thumbnail));
}
可以很容易地进行多填充。这里有一种不太详细的方法:
function hasThumbnail(object) {
return Object.values(object).some(prop =>
Array.isArray(prop) && prop.some(x => x.thumbnail));
}
可以很容易地填充