【发布时间】:2019-07-01 02:39:39
【问题描述】:
问题说明:编写一个函数displayOptions,接收一个对象“displayDevice”,返回一个数组。输入对象的属性将是“视频输出”选项,每个选项都有一个真值或假值。您的函数应该收集所有具有真实值的“视频输出”名称。
我想出了一种使用 .filter() 方法解决此问题的方法,但是,我并不完全理解这一点,并想尝试使用 for..in 语句来解决此问题。我能够遍历对象,但它返回数组中的所有键,而不仅仅是“真实”键。让我知道我在哪里出错了。
我的代码:
function displayOptions(displayDevice) {
for(var key in displayDevice) {
if(displayDevice[key] === true) {
return Object.keys(displayDevice);
}
}
}
var televisionA = {
VGA: false,
HDMI1: true,
HDMI2: true
}
var monitor001 = {
VGA: true,
DVI: false,
HDMI1: true,
HDMI2: true
}
var monitor002 = {
HDMI1: true,
HDMI2: true,
DVI: true
}
displayOptions(televisionA); //["HDMI1", "HDMI2"];
displayOptions(monitor001); //["VGA", "HDMI1", "HDMI2"];
【问题讨论】:
标签: javascript arrays object boolean