Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 - Fatal编程技术网

从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在空字符串上?是的,但要小心,包含一个或多个空格字符(如``的字符串)的字符串是真的。在这种情况下,我的示例不起作用