我是 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;
};
最佳答案
你很接近。 if
应该是这样的:
if (array[i]) {
truthyValues.push(array[i]);
}
因为你想检查每个数组元素的真实性,只需将 array[i]
放在 if
block 中。这会在 i
处获取数组的值,如果该值为真,则计算结果为真。
然后不是将 i - 索引插入数组 - 而是将 array[i]
插入,以便实际值在 truthyValues 中。
关于javascript - 使用 for 循环推送到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20432763/