我需要创建一个名为onlyTruthy的函数,它接受一个对象,遍历其所有属性,并删除任何伪造的东西。然后返回传入的对象。但我对如何使其变得虚伪或虚假感到困惑。这是我到目前为止所做的。
function onlyTruthy (val) {
for (var key in val) {
if (val.hasOwnProperty(key)) {
alert(key + " -> " + val[key]);
}
}
return val;
}
答案 0 :(得分:2)
我认为你可以使用!
检查它是否是假的并删除运算符以删除属性
function onlyTruthy(val) {
for (var key in val) {
if (val.hasOwnProperty(key) && !val[key]) {
delete val[key];
}
}
return val;
}
答案 1 :(得分:0)
这是最简单,最有效的方法:
var car = {
make: "bmw",
model: "328i",
year: "2012",
color: null,
mileage: undefined,
doors: false,
cylinders: ""
};
onlyTruthy=(o)=>{
Object.keys(o).forEach((p)=>(!o[p])?delete o[p]:null);
return o;
}
答案 2 :(得分:-1)
我认为最好创建一个新变量来仅保存现有对象的真值,如下所示:
var yourOldObject; /* some data in it */
var newObject = onlyTruthy(yourOldObject); /* newObject variable holds only true values now */
function onlyTruthy (val) {
var newObj = {};
for (var key in val) {
if (val.hasOwnProperty(key) && val[key]) {
newObj[key] = val[key];
}
}
return newObj;
}
答案 3 :(得分:-1)
你可以简单地用你自己的Object(有一些属性)替换对象
for (var property in object) {
if (object.hasOwnProperty(property)) {
alert( ' the Key is : '+ property + ' And the value is : ' + object[property]);
}
}
您可以通过您的ur类实例或任何其他Object
更改对象