#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. Это делает работу, но некоторое форматирование не повредит! 🙂