Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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,我有以下数组: var imagesList = [undefined x 1, cars.jpg, undefined x 1, boats.jpg]; 如何过滤掉未定义的内容?所以我可以得到如下结果: var imagesShow = [cars.jpg, boats.jpg]; 我没有找到太多关于使用javascript消除数组中未定义的文档。使用array\35; filter: var-imagesList=[未定义,'cars.jpg',未定义,'boats.jpg']; va

我有以下数组:

var imagesList = [undefined x 1, cars.jpg, undefined x 1, boats.jpg];
如何过滤掉未定义的内容?所以我可以得到如下结果:

var imagesShow = [cars.jpg, boats.jpg];
我没有找到太多关于使用javascript消除数组中未定义的文档。

使用
array\35; filter

var-imagesList=[未定义,'cars.jpg',未定义,'boats.jpg'];
var结果=imagesList.filter(函数(v){
返回v!==未定义;
})
控制台日志(结果)您可以使用with作为truthy值的回调

var imagesList=[undefined'cars.jpg',undefined'boats.jpg'],
imagesShow=imagesList.filter(布尔值);
console.log(imagesShow)使用

var-imagesList=[未定义,'cars.jpg',未定义,'boats.jpg'];
var result=imagesList.filter(函数(元素){
返回元素!==未定义;
});

控制台日志(结果)尝试使用Array.filter函数

var imagesShow = imagesList.filter(function (value) {
    return value != undefined;
};
任何在上述回调函数中未通过检查的数组元素都将被过滤掉-在这种情况下,如果元素未定义。

请使用函数表达式尝试方法

var imagesList=[undefined,“cars.jpg”,undefined,“boats.jpg];
var filteredList=imagesList.filter(项=>{return item!==undefined});

console.log(filteredList)通过显示
未定义的x2
,您的数组清楚地表明它是稀疏的,这意味着您没有任何未定义的项。你只是没有钥匙来存放物品

好的,您可能拥有并希望保留适当的
void 0
未定义的
项(在这种情况下,上述所有解决方案都将失败)或数值
0
null
对象项(在这种情况下,接受的答案将失败)

为了将稀疏数组转换为密集形式,将使用
for In
循环(或
Object.keys()

因此,对于稀疏数组循环,最好使用

var res=[],
a=[];
a[1]=“cars.jpg”;
a[5]=null;
a[999999]=“beauty.jpg”;
//[undefined×1,“cars.jpg”,undefined×3,null,undefined×99993,“beauty.jpg”]
功能密集型(a){
var r=[];
对于(a中的i)r.push(a[i]);
返回r;
}
控制台。时间(“测试”);
res=密度(a);
控制台。时间结束(“测试”);

控制台日志(res)
什么意思
未定义x1
?稀疏数组的console.log。当您对Javascript数组使用“delete”方法时,会得到未定义x1