13

重複の可能性:
Javascript の配列から空の要素を削除する

nullを使用して配列から要素を削除または空にしたいjquery

var clientName= new Array();
clientName[0] = "jack";
clientName[1] = "";
clientName[2] = "john";
clientName[2] = "peter";

いくつかの提案をしてください。

4

6 に答える 6

20

jquery grep関数を使用すると、定義した基準に合格する配列要素が識別されます

arr = jQuery.grep(arr, function(n, i){
  return (n !== "" && n != null);
});
于 2012-10-05T12:04:27.033 に答える
5

jQuery では必要ありません。プレーンな JavaScript を使用してください (より高速です!):

var newArray = [];
for (var i = 0; i < clientname.length; i++) {
    if (clientname[i] !== "" && clientname[i] !== null) {
        newArray.push(clientname[i]);
    }
}
console.log(newArray);

最新のブラウザ向けのもう 1 つの簡単なソリューション (Arrayfilter()メソッドを使用):

clientname.filter(function(value) {
    return value !== "" && value !== null;
});
于 2012-10-05T12:01:50.437 に答える
3

jQueryの関数はnull/未定義ではない.map()ものを返すことに依存しているため、次のようなもので逃げることができると考えていました:

var new_array = $.map(old_array, function (el) {
    return el !== '' ? el : null;
});

空の文字列をチェックする必要はありますが、null と undefined をチェックする必要はもうないので、ロジックの複雑さが 1 つ減ります。

于 2012-10-05T12:34:59.460 に答える
0
  1. 新しい空の配列を作成します。
  2. foreach ループに入り、値が '' と等しくない場合は項目を新しい配列に追加します。
于 2012-10-05T12:02:55.133 に答える
-1

これを試して :

$.each(clientname, function(key, value) { 
  if (value === 'undefined' || value === '')
     clientname.splice(key,1);
});
于 2012-10-05T12:01:43.383 に答える
-1

次のコードを使用します。

var newarr=[];
for(var i=0; i<len(clientname);i++){

   if(clientname[i] !== "" && clientname[i] !== null){
    newarr.push(clientname[i]);
   }
}
于 2012-10-05T12:01:44.553 に答える