#javascript #ecmascript-5
Вопрос:
У меня есть 4 строки, которые я хотел бы разделить с помощью ECMAScript 5 и создать новый объект с каждым первым элементом вместе.
Исключение: Каждый первый элемент массива остается в новой переменной, содержащей первый элемент первого элемента второго массива и первый элемент последнего массива. Конечно, мне пришлось отделить {PANTONE…} от желтого (они находятся в одном массиве), и я создал новый массив и придал ему цвет «желтый». После того, как я разделяю первые секунды секундами и т. Д., Я сопоставляю их с новой переменной
Я сделал это с современным JS, но я понятия не имею, как я могу сделать это с «старым» JS:
var name = ["{PANTONE Yellow C} {PANTONE 364 C} {PANTONE 137 U} magenta black {PANTONE Reflex Blue C} cyan"]
var percentage = ["0.546829 6.88961 1.03087 0.135706 10.2713 1.98788 0.508267 17.6122"]
var surface = ["1033.87 13025.6 1948.99 256.568 19419 3758.33 960.938 33297.9"]
Я хочу нанести его на карту вот так:
var result =
{{PANTONE Yellow C}, yellow, 0.546829, 1033.87},
{{PANTONE 364 C}, "no color", 6.88961,6.88961},
{{PANTONE 137 U}, magenta, 1.03087, 1948.99}
Комментарии:
1.
.map()
работает точно так же в ES5, как и в ES6. Никаких изменений нет. Вам просто нужно использовать обычную функцию вместо функции со стрелкой.2. Поэтому , если у вас есть функция со стрелкой
(i) => something
, просто измените ее наfunction(i) { return something; }
3. Вы просто используете случайные разделители? jsfiddle.net/g7ndjtwy
Ответ №1:
вы должны использовать разнесение строки по пространству, в более сложной ситуации вам следует использовать регулярное выражение для преобразования строки в массив. прежде всего, вам нужно преобразовать строки в массив, а затем вы можете создать объект этих данных или распечатать его по своему усмотрению.
let str = "0.546829 6.88961 1.03087 0.135706 10.2713 1.98788 0.508267 17.6122";
const arrayExploded = str.split(" ");
arrayExploded[0] //will get 0.546829
теперь вы можете использовать карту или любую функцию цикла, чтобы получить все данные массива