Javascript删除带有false值的删除键

时间:2013-10-16 14:07:41

标签: javascript angularjs

我正在尝试修改数组,然后再将其提交给只需要id的api。我生成了一个值数组,但是,我的数组包含错误值,具体取决于用户与UI的交互方式。

    [2: true, 3: true, 5: true]

但是,有时会显示如下:

    [1: false, 2: true, 3: true, 5: true, 6: false]

如何对其进行过滤,以便删除错误值,并删除值,因此理想数据如下所示:

    [2, 3, 5] 

3 个答案:

答案 0 :(得分:1)

您输入的形状不是很清楚,因为您编写的内容不是有效的JS语法。

假设您的初始“数组”实际上是地图(对象),您可以这样做:

var initial =  {1: false, 2: true, 3: true, 5: true, 6: false};
var final = []; // the array that will contain the result
for (var key in initial) { // iterate through all properties
  if (initial.hasOwnProperty(key)){ // safety check against object poisoning
    if (initial[key]) { // only push true values
      final.push(+key); // + converts the key to a number. Remove it if you want string
    }
  }
}

console.log(final); // [2,3,5]

答案 1 :(得分:0)

您可以创建一个新数组并像这样循环旧数组,并将新值添加到新数组中。

var old_array = [false, true, true, true, false];
var new_array = new Array();
for(i = 0; i < old_array.length; i++) {
    if (old_array[i] == true) {
        new_array.push(old_array[i]);
    }
}

答案 2 :(得分:0)

所以说

var arr = [false, true, false, true, true];

删除值的功能

 function removeFalseValues(array){
    for(var i = 0 ; i < array.length; i++){
         if(array[i] == false){
              delete(array[i]);
         }
    }
    return array;
}

和电话

removeFalseValues(arr);