如何使以下函数返回true或false
How to make the following function return true or false?
以下函数检查某些对象是否具有属性thumbnail
。如果对象有缩略图,我希望它返回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
}
})
}
})
但是,现在函数没有返回任何内容。如何使函数返回true
或false
?
如果找到,您可以在内部使用Array#some
来从迭代中获得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;
});
}
});
}
你有一个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,但return不在循环中工作的概念应该与vanillaJS相同。
这里有一个不那么冗长的方法:
function hasThumbnail(object) {
return Object.values(object).some(prop =>
Array.isArray(prop) && prop.some(x => x.thumbnail));
}
CCD_ 11可以很容易地进行聚合填充。
相关文章:
- JavaScript-切换“;全部检查”;复选框true/false
- true==false以某种方式计算为true
- Javascript似乎在说true ==false
- JavaScript onkeydown, return true,false
- 从异步函数返回true/false以用于同步if()
- 函数返回undefined而不是true/false
- 为什么true/true是1,true/false是无穷大,false/true是0,false/false是NaN
- 检查对象数组是否包含布尔值true/false
- 函数:根据字符串中是否存在子字符串返回 True/False
- 如何将 ng-show 与控制器中返回 true/false 的函数一起使用
- 在input.checked=true/false _without_ jQuery上触发一个事件
- jQuery javascript未正确返回true/false
- 如何从嵌套的jquery回调函数中返回true/false
- 如何在骨干模型属性中设置布尔值true/false
- 如何使用angular或javascript在基于true/false返回的html中显示值
- 基于true/false变量显示/隐藏进度条
- Node.js在返回true/false时停止函数
- 是否可以将true/false值传递给ajax函数
- 根据Webix中的复选框值编辑true/false
- Meteor:设置车把变量true/false