es6 映射函数中的条件语句

Conditional Statement in a map function with es6

我需要在映射函数中使用条件语句

我在 SVG 中复制 path d 的每个值,但我不希望数组的对象 ML 发生这种情况

这里是数组作为字符串的示例。

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(' ')

我如何在 e6 中写下这个?我不希望元素 LM 发生乘法(类似于 if x ? 'M' : 'L' return

是的,就去做吧:

let neWd = array.map(x => {
    if (x == "M" || x == "L")
        return x; // unchanged
    else
        return String(parseInt(x, 10) * 2);
}).reverse().join(' ')

我不确定为什么你也使用 reverse 函数,反转 svg 路径稍微复杂一些。

此代码片段将所有数字加倍,但 ML 保持不变。

实际上将 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);

使用 Es6 语法

let neWd = array.map((x) => (x == "M" || x == "L") ?
x : String(parseInt(x, 10) * 2)).reverse().join(' ')