简体   繁体   English

如何删除 JavaScript 中的空白数组

[英]How can i remove blank array in JavaScript

I'm new to Javascript.我是 Javascript 的新手。

Initial data:初始数据:

["Argentina", "Maroon 5:50<br>"]
["Australia", "Maroon 5:224<br>"]
["Austria", "Maroon 5:42<br>"]
["Belgium", "Maroon 5:10<br>"]
[""]
["Brazil", "Maroon 5:187<br>"]
[""]
["Canada", "Maroon 5:160<br>"]
[""]
["China", "Maroon 5:10<br>"]
[""]
[""]
[""]
[""]
[""]
[""]
[""]
[""]
["France", "Maroon 5:1533<br>"]

My code:我的代码:

     $.each(resp.result.artists_detail, function(index, item) {
  var arr = [];
  var pop_val = [];                       
  var artistdetails="";
  for (var i = 0; i < resp.result.artists.length; i++) {
    arr.push(item[0].country_name);
    if(item[i].play_count != 0){
      artistdetails +=item[i].artist_name +':'+ item[i].play_count+'<br>';
    }else{
      arr.pop(artistdetails);
    }  
  }
  arr.push(artistdetails);
  arrOfChart.push(arr);
});

I need this result:我需要这个结果:

["Argentina", "Maroon 5:50<br>"]
["Australia", "Maroon 5:224<br>"]
["Austria", "Maroon 5:42<br>"]
["Belgium", "Maroon 5:10<br>"]
["Brazil", "Maroon 5:187<br>"]
["Canada", "Maroon 5:160<br>"]
["China", "Maroon 5:10<br>"]
["France", "Maroon 5:1533<br>"]

How can I remove blank arrays?如何删除空白 arrays? I'm trying to add array for array push and remove array for array pop, but I need an array without a blank array.我正在尝试为数组推送添加数组并为数组弹出删除数组,但我需要一个没有空白数组的数组。

To remove empty values from array, you need to use filter function:要从数组中删除空值,您需要使用filter function:

var array = [0, 1, null, 2, "", 3, undefined, 3,,,,,, 4,, 4,, 5,, 6,,,,];

var filtered = array.filter(function (el) {
  return el != "";
});

console.log(filtered);

just do in the end:最后只做:

arrOfChart = arrOfChart.filter(arr=>!(arr.length == 1 && arr[0] == ""))
console.log(arrOfChart)
>>>[
["Argentina", "Maroon 5:50<br>"],
["Australia", "Maroon 5:224<br>"],
["Austria", "Maroon 5:42<br>"],
["Belgium", "Maroon 5:10<br>"],
["Brazil", "Maroon 5:187<br>"],
["Canada", "Maroon 5:160<br>"],
["China", "Maroon 5:10<br>"],
["France", "Maroon 5:1533<br>"]
]

You just use filter您只需使用filter

 let data = [["Argentina", "Maroon 5:50<br>"], ["Australia", "Maroon 5:224<br>"], ["Austria", "Maroon 5:42<br>"], ["Belgium", "Maroon 5:10<br>"], [""], ["Brazil", "Maroon 5:187<br>"], [""], ["Canada", "Maroon 5:160<br>"], [""], ["China", "Maroon 5:10<br>"], [""], [""], [""], [""], [""], [""], [""], [""], ["France", "Maroon 5:1533<br>"]] let result = data.filter(([el]) => el); console.log(result);

by using .filter and implicit coercion of ( "" to false ) you can achieve that通过使用.filter和隐式强制( ""false ),您可以实现

baseArray.filter( subArray => subArray[0]);

 const baseArray = [["Argentina", "Maroon 5:50<br>"], ["Australia", "Maroon 5:224<br>"], ["Austria", "Maroon 5:42<br>"], ["Belgium", "Maroon 5:10<br>"], [""], ["Brazil", "Maroon 5:187<br>"], [""], ["Canada", "Maroon 5:160<br>"], [""], ["China", "Maroon 5:10<br>"], [""], [""], [""], [""], [""], [""], [""], [""], ["France", "Maroon 5:1533<br>"] ]; const result = baseArray.filter( subArray => subArray[0]); console.log(result);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM