带有es6的map函数中的条件语句

Koa*_*la7 0 javascript arrays if-statement map-function

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

我正在复制a path d中a的每个单值,SVG但我不希望对象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
Run Code Online (Sandbox Code Playgroud)

这是我没有条件语句的例子

let neWd = array.map(x => { return x * 2; }).reverse().join(' ')
Run Code Online (Sandbox Code Playgroud)

我怎么能在e6中写下这个?我不希望元素LM(类似的if x ? 'M' : 'L' return)发生乘法运算

Phi*_*ore 9

我不确定为什么你也使用这个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);
Run Code Online (Sandbox Code Playgroud)


Ber*_*rgi 6

是的,只需这样做:

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