I'm new to 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? 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:
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
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
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);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.