преобразование строкового массива в целочисленный массив

#javascript

Вопрос:

Я создал массив:

 var endFlowArray = new Array;
for (var endIndex in flowEnd) { // <- this is just some numbers 
    for (var i in dateflow) { // <- same thing 
        var check = $.inArray(flowEnd[endIndex], dateflow[i]);
        if (check >= 0) {
            endFlowArray.push(i);
            flowEnd[endIndex] = null;
        }
    }
}
 

Как я могу преобразовать строковый массив из:

 ["286", "712", "1058"]
 

к целочисленному массиву, такому как:

 [286, 712, 1058]
 

Комментарии:

1. Это легко исправить. .push( i) или .push(parseInt(i)) . Просто преобразуйте строку в целое число.

2. my endFlowArray came up with something like this Вам нужно объяснить это утверждение. Как это «всплыло»? Вы используете отладчик javascript? настороже? Что-то еще?

3. представляет dateflow собой массив строк или чисел?

4. Кевин Б. реши это, но мне все равно нужно знать, что произошло

5. Покажите создание строк в потоке данных, и у вас будет свой ответ

Ответ №1:

 var arrayOfNumbers = arrayOfStrings.map(Number);
 

Комментарии:

1. Короткий и приятный способ типизации.

Ответ №2:

Строки в консоли символизируются заключением их в кавычки. Исходя из этого факта, мы можем предположить, что i это строка. Преобразуйте его в целое число, и он больше не будет строкой и больше не будет содержать этих кавычек.

 endFlowArray.push( i);
 

Ваши «числа» в flowEnd и dateFlow на самом деле являются строками, а не числами.

Ответ №3:

Для преобразования типа данных всего массива мы можем использовать map() :

 let numberArray = stringArray.map(Number)
 

Ответ №4:

попробуйте это:

 let numberArray = stringArray.map(el=>parseInt(el))
 

Комментарии:

1. Это делает работу, но некоторое форматирование не повредит! 🙂