Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中从数组中删除空字符串_Javascript_Arrays_String - Fatal编程技术网

在javascript中从数组中删除空字符串

在javascript中从数组中删除空字符串,javascript,arrays,string,Javascript,Arrays,String,我需要帮助理解我的代码中发生了什么。我计划编写一个函数,它接收字符串并删除所有字母。输入将是字母和数字的组合。我希望此函数返回字符串中找到的所有数字的数组。我(在stackoverflow的帮助下)成功地写了一些东西: 这是回报 [ '32321', '44' ] 这对现在来说是完美的。我的问题是我不明白arr.splice(I,1)是如何删除空字符串的。删除arr中的空字符串毫无意义。有人能帮我理解吗?测试: if (arr[n] == "") // if item `n` within `

我需要帮助理解我的代码中发生了什么。我计划编写一个函数,它接收字符串并删除所有字母。输入将是字母和数字的组合。我希望此函数返回字符串中找到的所有数字的数组。我(在stackoverflow的帮助下)成功地写了一些东西:

这是回报

[ '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);