我是一个JS新手。试着在下面找出这个问题。我被困在“if”语句中并且不确定要放入什么。我也不确定我的“推送”是否设置正确
// Define a function named `compact` that accepts an array and returns
// another array with all the falsey values removed from it. For example,
// if this array was passed in:
// [1, 4, 0, '', undefined, false, true, null, {mj: 'mj'}, 'Hello']
// the function would return this, as a result:
// [1, 4, true, {mj: 'mj'}, 'Hello']
var compact = function (array) {
var truthyValues = [];
for (var i = 0; i < array.length; i += 1) {
if () {
truthyValues.push[i];
}
}
return truthyValues;
};
答案 0 :(得分:4)
你很亲密。这是if
应该是什么:
if (array[i]) {
truthyValues.push(array[i]);
}
由于您要检查每个数组元素的真实性,只需将array[i]
放在if
块中即可。这将得到i
数组的值,并且如果该值是真的,则将其计算为true。
然后将i - 索引推入数组 - 但array[i]
,以便实际值为truthyValues。
答案 1 :(得分:4)
只需将要检查的值放在if语句中,因为if语句会检查是否真实。
if(array[i]){
truthyValues.push(array[i]);
}
答案 2 :(得分:1)
我认为你可以使用:
if (array[i]) { truthyValues.push(array[i]); }
像null这样的值将触发false。
答案 3 :(得分:1)
if (typeof array[i] !== "undefined" && array[i] !== null) {// push to array // }
这些其他答案中的大部分都不适用于虚假和存在的价值观。你需要定义你想要存在的东西并为此编写一个辅助函数。你可以使用我提供的那个作为开始然后自己动手。