使用for循环推送到数组

时间:2013-12-06 20:13:56

标签: javascript

我是一个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;
};

4 个答案:

答案 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 // }

这些其他答案中的大部分都不适用于虚假和存在的价值观。你需要定义你想要存在的东西并为此编写一个辅助函数。你可以使用我提供的那个作为开始然后自己动手。