es6 映射函数中的条件语句
Conditional Statement in a map function with es6
我需要在映射函数中使用条件语句
我在 SVG
中复制 path d
的每个值,但我不希望数组的对象 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(' ')
我如何在 e6 中写下这个?我不希望元素 L
和 M
发生乘法(类似于 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 路径稍微复杂一些。
此代码片段将所有数字加倍,但 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);
使用 Es6 语法
let neWd = array.map((x) => (x == "M" || x == "L") ?
x : String(parseInt(x, 10) * 2)).reverse().join(' ')
我需要在映射函数中使用条件语句
我在 SVG
中复制 path d
的每个值,但我不希望数组的对象 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(' ')
我如何在 e6 中写下这个?我不希望元素 L
和 M
发生乘法(类似于 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 路径稍微复杂一些。
此代码片段将所有数字加倍,但 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);
使用 Es6 语法
let neWd = array.map((x) => (x == "M" || x == "L") ?
x : String(parseInt(x, 10) * 2)).reverse().join(' ')