在javascript中从数组中删除空字符串
我需要帮助理解我的代码中发生了什么。我计划编写一个函数,它接收字符串并删除所有字母。输入将是字母和数字的组合。我希望此函数返回字符串中找到的所有数字的数组。我(在stackoverflow的帮助下)成功地写了一些东西: 这是回报在javascript中从数组中删除空字符串,javascript,arrays,string,Javascript,Arrays,String,我需要帮助理解我的代码中发生了什么。我计划编写一个函数,它接收字符串并删除所有字母。输入将是字母和数字的组合。我希望此函数返回字符串中找到的所有数字的数组。我(在stackoverflow的帮助下)成功地写了一些东西: 这是回报 [ '32321', '44' ] 这对现在来说是完美的。我的问题是我不明白arr.splice(I,1)是如何删除空字符串的。删除arr中的空字符串毫无意义。有人能帮我理解吗?测试: if (arr[n] == "") // if item `n` within `
[ '32321', '44' ]
这对现在来说是完美的。我的问题是我不明白arr.splice(I,1)是如何删除空字符串的。删除arr
中的空字符串毫无意义。有人能帮我理解吗?测试:
if (arr[n] == "") // if item `n` within `arr` array `==` `""` , do stuff
看
在一个数组中包含两个项:
var-arr=[“123”,“123];
如果(arr[0]==“”){
arr.拼接(0,1);
}否则{
console.log(arr);//[“123”,“]”;
};
如果(arr[1]=“”){
阵列拼接(1,1);
console.log(arr);//[“123”]
};代码>与其他返回新数组的方法不同,它只保留原始变量,而对数组进行变异,对其进行就地更改
语句arr.splice(i,1)代码>表示从位置i
开始从数组arr
中删除一项if(arr[i]==“”)
表示如果位置i
处的项目为空字符串,则执行此块中的操作。因此,当if
语句为true时,该项将从数组中删除
也就是说,除非您需要支持ES3浏览器(实际上是指IE8或以下),否则我不会像那样在阵列中循环,而是使用:
如果您只是尝试从一个字符串中提取一个数字字符串数组,而没有其他要求,那么更简洁的方法是只拆分一个或多个非数字:
var number = "32321FDFDS 44",
arr = number.split(/\D+/);
// arr is now [ "32321", "44" ]
console.log(arr);
这只需一步即可完成所有操作,而无需过滤空字符串。它将从数组中删除元素。在您的例子中,空字符串是数组中的一个元素。
var number = "32321FDFDS 44",
arr = number.replace(/[A-Za-z]/g," ").split(" ").filter(function (item) {
return !!item; // all strings except an empty string will coerce to true
});
console.log(arr);
var number = "32321FDFDS 44",
arr = number.split(/\D+/);
// arr is now [ "32321", "44" ]
console.log(arr);