Условный оператор в функции карты с 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(' ')
Другие вопросы по тегам