从javascript数组中删除导致问题的元素
所以我有点困惑,为什么这不起作用。我试图删除数组中的所有空字符串,但它总是返回一个只有一个空字符串的数组。有什么想法吗从javascript数组中删除导致问题的元素,javascript,arrays,Javascript,Arrays,所以我有点困惑,为什么这不起作用。我试图删除数组中的所有空字符串,但它总是返回一个只有一个空字符串的数组。有什么想法吗 function splitNames(){ var names = document.getElementById("1").value.split("\n"); for(var i = 0; i<=names.length; i++){ if(names[i]==""){ names = names.splice
function splitNames(){
var names = document.getElementById("1").value.split("\n");
for(var i = 0; i<=names.length; i++){
if(names[i]==""){
names = names.splice(i, 1);
console.log(names);
}
}
console.log(names);
}
函数splitNames(){
var name=document.getElementById(“1”).value.split(“\n”);
对于(var i=0;i也许最简单的方法是使用filter
函数并搜索truthy值。默认情况下,空字符串为false
filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素
var strings=[“斑马”,“树”,“森林”,“你好”,“向导”,“蜥蜴”,“蜥蜴”];
strings=strings.filter((e)=>e);
console.log(strings);
执行此操作的最简单方法可能是使用过滤器
函数并搜索真实值。默认情况下,空字符串为false
filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素
var strings=[“斑马”,“树”,“森林”,“你好”,“向导”,“蜥蜴”,“蜥蜴”];
strings=strings.filter((e)=>e);
console.log(字符串);
函数splitNames(){
//var name=document.getElementById(“1”).value.split(“\n”);
var names=“Hi\nHello\n\ngoodbay”.split(“\n”);
var filteredNames=names.filter(函数(项){
返回项目。修剪()!==“”;
});//过滤器
返回过滤器名称;
}//splitNames()
console.log(splitNames());
函数splitNames(){
//var name=document.getElementById(“1”).value.split(“\n”);
var names=“Hi\nHello\n\ngoodbay”.split(“\n”);
var filteredNames=names.filter(函数(项){
返回项目。修剪()!==“”;
});//过滤器
返回过滤器名称;
}//splitNames()
console.log(splitNames());
创建一个新数组并按需推送
function splitNames(){
var names = document.getElementById("1").value.split("\n");
var newArr = [];
for(var i = 0; i<=names.length; i++){
if(names[i]){
newArr.push(names[i]);
}
}
return newArr.join('\n');
//console.log(names);
}
函数splitNames(){
var name=document.getElementById(“1”).value.split(“\n”);
var newArr=[];
对于(var i=0;i创建一个新数组并推送所需内容
function splitNames(){
var names = document.getElementById("1").value.split("\n");
var newArr = [];
for(var i = 0; i<=names.length; i++){
if(names[i]){
newArr.push(names[i]);
}
}
return newArr.join('\n');
//console.log(names);
}
函数splitNames(){
var name=document.getElementById(“1”).value.split(“\n”);
var newArr=[];
对于(var i=0;i尝试:
function splitNames(){
var names = document.getElementById("1").value.split("\n");
var newArr = names.filter(function(name){
return name!=="";
});
return newArr;
}
试试看:
function splitNames(){
var names = document.getElementById("1").value.split("\n");
var newArr = names.filter(function(name){
return name!=="";
});
return newArr;
}
您可以使用ari.filter(函数(项){return!!item;})
从数组中删除所有空字符串。由于每次都用拼接版本替换名称,使数组变短,因此会出现此错误。可以缓存长度或使用第二个数组。您可以使用ari.filter(函数(项){return item;})
从数组中删除所有空字符串。如果每次都用拼接版本替换名称,则会出现此错误,从而缩短数组。请缓存长度或使用第二个数组。谢谢!!成功了!您能解释一下这是如何工作的吗?过滤器到底是什么?过滤器,顾名思义,它会过滤一组元素(数组)基于一个条件。比如说,你有一个成分列表,想要过滤水果。你会有一个原始的项目列表,包括意大利面、面包、菠萝、芒果、胡萝卜
。过滤它只得到水果,你会有菠萝、芒果
啊,所以在这种情况下,布尔函数只传递n关于空字符串?是的,但要小心,包含一个或多个空格字符(如“`的字符串)的字符串是真的。在这种情况下,我的示例不起作用。谢谢!!真的起作用了!你能解释一下它是如何工作的吗?过滤器到底是什么?过滤器,顾名思义,过滤器过滤一组元素(数组)基于一个条件。比如说,你有一个成分列表,想要过滤水果。你会有一个原始的项目列表,包括意大利面、面包、菠萝、芒果、胡萝卜
。过滤它只得到水果,你会有菠萝、芒果
啊,所以在这种情况下,布尔函数只传递n在空字符串上?是的,但要小心,包含一个或多个空格字符(如``的字符串)的字符串是真的。在这种情况下,我的示例不起作用