如何删除未定义的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