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

时间:2017-01-09 18:32:40

标签: javascript arrays if-statement map-function

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

我正在复制undefinednew的每个单值,但我不希望这种情况发生在数组的对象path dSVG

以下是数组作为字符串的示例。

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

的乘法发生

3 个答案:

答案 0 :(得分:6)

我不确定你为什么使用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);




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