Необходимо удалить строку из массива - PullRequest
2 голосов
/ 19 июня 2019

У меня есть массив внутри цикла for, подобный этому:

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

И мне нужен только такой номер:

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

Так может кто-нибудь, пожалуйста, помогите здесь.

Ответы [ 5 ]

3 голосов
/ 19 июня 2019

Другой подход с использованием преобразованного числа в строку и сравнение с исходным значением.

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>
1 голос
/ 19 июня 2019

filter из строк, которые являются целыми числами, когда они приводятся к одному:

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

const out = arr.filter(el => (
  el !== '' && Number.isInteger(Number(el)))
);

console.log(out)
0 голосов
/ 19 июня 2019

Использование forEach циклов и проверка с использованием isNaN()

var arr = ["abc", "5", "city", "2", "area", "2", "max"];
var a=[];
arr.forEach(e=>isNaN(e)?true:a.push(e))
console.log(a)
0 голосов
/ 19 июня 2019

Вы можете использовать filter метод с isNaN функцией var numbers = arr.filter(c=> !isNaN(c));

var arr = ["abc", "5", "city", "2", "area", "2", "max", "choice"];
var numbers = arr.filter(c=> !isNaN(c));
console.log(numbers);
0 голосов
/ 19 июня 2019

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

const filtered = arr.filter(item => !isNaN(item));

console.log(filtered);
...