首页 > 解决方案 > 需要从数组中删除字符串

问题描述

我在 for 循环中有一个数组,如下所示:

var arr = ["abc", "5", "city", "2", "area", "2", "max", "choice"];

我只需要这样的数字:

var arr = ["5","2","2"];

所以有人可以在这里帮忙。

标签: javascriptarraysfilternumbersunderscore.js

解决方案


另一种方法是使用转换后的数字到字符串并与原始值进行比较。

var array = ["abc", "5", "city", "2", "area", "2", "max", "choice"],
    result = array.filter(v => (+v).toString() === v);

console.log(result);

只是更短的方法isFinite

var array = ["abc", "5", "city", "2", "area", "2", "max", "choice"],
    result = array.filter(isFinite);

console.log(result);

标记时,您可以使用下划线的过滤和回调。

var array = ["abc", "5", "city", "2", "area", "2", "max", "choice"],
    result = _.filter(array, _.isFinite);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>


推荐阅读