1、全部替換
我們知道string.replace()函數只會替換第一次出現的位置。在正則表達式末尾添加 /g 即可替換所有出現。
<code>var
example ="potato potato"
;console
.log(example.replace(/pot/
,"tom"
));console
.log(example.replace(/pot/g
,"tom"
)); /<code>
2、提取唯一值
使用Set對象和spread操作符可以創建一個新的數組,僅包含唯一的值。
<code>var
entries
=
[1,
2
,
2
,
3
,
4
,
5
,
6
,
6
,
7
,
7
,
8
,
4
,
2
,
1
]
var
unique_entries
=
[...new
Set(entries)];
console.log(unique_entries);
//
[1,
2
,
3
,
4
,
5
,
6
,
7
,
8
]
/<code>
3、數字轉為字符串
只需要將其與空字符串連接。
<code>var
converted_number =5
+""
;console
.log(converted_number);console
.log(typeof
converted_number); /<code>
4、字符串轉為數字
只需要使用 + 運算符。
注意這個技巧只能在“字符串形式的數字”上使用。
<code>the_string ="123"
; console.log
(+the_string); the_string ="hello"
; console.log
(+the_string); /<code>
5、打亂數組的元素順序
<code>var
my_list
=
[1,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
];
console.log(my_list.sort(function()
{
return
Math.random()
-
0.5
}));
//
[4,
8
,
2
,
9
,
1
,
3
,
6
,
5
,
7
]
/<code>
6、多維數組扁平化
只需使用spread運算符。
<code>var
entries
=
[1,
[2,
5
],
[6,
7
],
9
];
var
flat_entries
=
[].concat(...entries);
//
[1,
2
,
5
,
6
,
7
,
9
]
/<code>
7、短路條件
比如下面的例子:
<code>if
(available) {addToCart
(); }/<code>
只需將變量和函數寫到一起即可:
<code>available
&
&
addToCart
() /<code>
8、動態屬性名
原來我以為必須先定義一個對象才能指定動態屬性名,其實不需要:
<code>const
dynamic
='flavour'
;var
item = { name:'Coke'
, [ ]:'Cherry'
} console.log(item); /<code>
9、使用length屬性來改變數組大小或清空數組
只需要重寫數組的length即可。
要想改變數組大小:
<code>var
entries
=
[1,
2
,
3
,
4
,
5
,
6
,
7
];
console.log(entries.length);
//
7
entries.length
=
4
;
console.log(entries.length);
//
4
console.log(entries);
//
[1,
2
,
3
,
4
]
/<code>
要想清空數組:
<code>var
entries
=
[1,
2
,
3
,
4
,
5
,
6
,
7
];
console.log(entries.length);
//
7
entries.length
=
0
;
console.log(entries.length);
//
0
console.log(entries);
//
[]
/<code>
原文:https://dev.to/razgandeanu/9-extremely-powerful-javascript-hacks-4g3p