JavaScript 属性删除如果为假,则不删除,如果为真循环
javascript property delete if false nothing if true loop
我需要遍历对象键,如果属性为 false,则删除 keys 属性。这就是我到目前为止所拥有的,但我无法弄清楚我做错了什么。
function onlyTheTruthy() {
onlyTheTruthy.key;
var prop;
for (key in onlyTheTruthy){
if (key != true) {
delete onlyTheTruthy.key.prop
}
else {
}
}
return onlyTheTruthy;
};
在for...in
循环中,使用 key
访问对象上的值。这是用括号完成的,例如 obj[key]
.
function onlyTheTruthy(obj) {
for (var key in obj) {
if (!obj[key]) {
delete obj[key];
}
}
return obj;
}
function onlyTheTruthy() {
onlyTheTruthy.key;
var prop;
for (key in onlyTheTruthy) {
if (key != true) {
delete onlyTheTruthy.key.prop
} else {}
}
return onlyTheTruthy;
};
这是你的代码。
线:
- 你声明了一个名为
onlyTheTruthy
的函数,不带任何参数。但是,我认为应该采取一个:o
。 - 此行不执行任何操作。应将其删除。
- 将变量的作用域设置为
prop
,但不为其指定任何值。好。 for...in
循环。你可能想研究一下它到底有什么作用。除了在第 2 行之外,以前从未见过key
变量,但这是一个不同的变量:属性onlyTheTruthy
.此外,您正在循环访问您所在函数的键:onlyTheTruthy
。我相信这不是你想要的。尝试:for (prop in o) {
检查
key
是否不等于 true。布尔值很少用作对象键。或:if (!o[prop]) { // Or, more verbosely: if (o[prop] === false) {
查找方括号 (
[]
(。- 空
else
.没有else
怎么样?这不是必需的,你知道的。 -
}
关闭for...in
循环。 - 返回函数本身。不。
o
怎么样?或者,如果您最终修改了对象本身,则根本不需要返回。 - 函数声明末尾不需要分号。
祝您编码愉快!
固定版本:
function onlyTheTruthy (o) {
for (var prop in o) {
if (!o[prop])
delete o[prop];
}
}
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何检查元素的内容是否为空,如果为空,请在jquery中删除该元素
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如果另一个属性相同,请删除该属性
- Wordpress TinyMCE在从文本切换到视觉时,如果锚标记包裹块元素,则会删除锚标记
- 如果用户选择离开网页,如何删除记录
- 如果screen.height低于460px,请删除一个类
- 如果今天是会计年度的最后一天,请从下拉菜单中删除当前年份
- 我想限制用户在jquery中输入文本后面的空格,如果它在文本后面,我会删除空格
- 使用jquery如何自动删除下拉列表中的第一个空白选项(如果它依赖于另一个选项)
- 仅JavaScript-删除某些类(如果存在)
- javascript页面加载检查是否存在具有特定类的span(在<tr>下),如果不存在,则删除整个<
- 从数组中删除值,用新的数组总数更新html或'$'如果没有总计
- 如果存在Javascript,请删除多个类中的一个
- 如果el包含此文本,请从中删除此字符串
- 在更改时,如果没有使用jquery更改,也可以删除对select元素的关注
- 如果他们不这样做,就从我的数组中删除东西't没有前缀
- 如果删除不相关的脚本,使用html画布生成的Iphone图像将被裁剪
- Length返回兄弟姐妹总数的值,并赢得'如果删除了同级,则不会更新.为什么?