Условный оператор в функции карты с es6
Мне нужно использовать условный оператор в функции карты
Я дублирую каждое значение path d
в SVG
но я не хочу, чтобы это происходило с объектами M
а также L
из массива
Вот пример массива в виде строки.
M 175 0 L 326.55444566227675 87.50000000000001 L 326.55444566227675 262.5 L 175 350 L 23.445554337723223 262.5 L 23.44555433772325 87.49999999999999 L 175 0
Это пример моего случая без условного утверждения
let neWd = array.map(x => { return x * 2; }).reverse().join(' ')
как я могу записать это в е6? Я не хочу, чтобы умножение происходило для элементов L
а также M
(что-то вроде if x ? 'M' : 'L' return
)
3 ответа
Решение
Я не уверен, почему вы используете reverse
Функция также, обратный путь SVG немного сложнее.
Этот фрагмент кода удваивает все числа, но оставляет M
а также L
неповрежденными.
В результате увеличение пути SVG на 200%
var array = "M 175 0 L 326.55444566227675 87.50000000000001 L 326.55444566227675 262.5 L 175 350 L 23.445554337723223 262.5 L 23.44555433772325 87.49999999999999 L 175 0".split(" ");
let neWd = array.map(x => {
if (x === 'M' || x === 'L'){
return x;
}else{
return x * 2;
}
}).join(' ')
console.log(neWd);
Да, просто сделай это:
let neWd = array.map(x => {
if (x == "M" || x == "L")
return x; // unchanged
else
return String(parseInt(x, 10) * 2);
}).reverse().join(' ')
Использование синтаксиса Es6
let neWd = array.map((x) => (x == "M" || x == "L") ?
x : String(parseInt(x, 10) * 2)).reverse().join(' ')