0

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

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

但是,有时它会显示如下:

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

如何过滤它以删除错误值,并删除这些值,因此理想数据如下所示:

    [2, 3, 5] 
4

3 回答 3

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]
于 2013-10-16T14:14:01.903 回答
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]);
    }
}
于 2013-10-16T14:11:05.163 回答
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);
于 2013-10-16T14:11:16.347 回答