我需要在map函数中使用条件语句
我正在复制undefined
中new
的每个单值,但我不希望这种情况发生在数组的对象path d
和SVG
以下是数组作为字符串的示例。
M
这是我没有条件语句
的情况的例子L
我怎么能在 e6 中写下这个?我不希望元素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(' ')
(类似L
)
答案 0 :(得分:6)
我不确定你为什么使用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);

答案 1 :(得分:1)
是的,就这样做:
let neWd = array.map(x => {
if (x == "M" || x == "L")
return x; // unchanged
else
return String(parseInt(x, 10) * 2);
}).reverse().join(' ')
答案 2 :(得分:0)
使用 Es6 语法
let neWd = array.map((x) => (x == "M" || x == "L") ?
x : String(parseInt(x, 10) * 2)).reverse().join(' ')