JS学习笔记——实用的 JS 小技巧
1. 安全的串接字串
假设有一些不确定的变量类型,而你想将它们串接成字符串,这样可能会导致错误。
var one = 1;
var two = 2;
var three = '3';
var result = one + two + three;
// 会得到 "33" 而非 "123"
可以用 concat 来串接字符串:
var one = 1;
var two = 2;
var three = '3';
var result = ''.concat(one, two, three);
// 得到 "123"
2. 把字串转成数字
如果有一个字符串比如 ‘1’, ‘123’ 之类的,而你需要把它转成数字,你可能会这样做:
var one = '1';
var two = '2';
var numberOne = Number(one); // 1
var numberTwo = parseInt(two); // 2
但这样可以更简单快速:
var one = '1';
var numberOne = +one; // 1
3. 移除数组中的重复元素
如果有一个数组,里面有一些元素是重复的,可以用这样的方式来移除:
var originArr = [1, 'a', 1, 'a'];
var deduped = originArr.filter(function(el, i, arr){
return arr.indexOf(el) === i;
});
console.log(deduped); // [1, 'a']
用 ES6 的语法可以写得更简洁:
var originArr = [1, 'a', 1, 'a'];
var deduped = originArr.filter((el, i, arr) => arr.indexOf(el) === i);
console.log(deduped); // [1, 'a']
4. 把二维数组扁平化
有三种不同的解决方法,可以将二维数组合并为单一的数组。
给定一个数组:
var myArray = [[1, 2],[3, 4, 5], [6, 7, 8, 9]];
我们想得到这个结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
方法一:
var myNewArray = [];
for (var i = 0; i < myArray.length; ++i) {
for (var j = 0; j < myArray[i].length; ++j){
myNewArray.push(myArray[i][j]);
}
}
console.log(myNewArray);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
方法二:
var myNewArray = myArray.reduce(function(prev, curr) {
return prev.concat(curr);
});
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
方法三:
var myNewArray = [].concat.apply([], myArray);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
手机阅读请扫描下方二维码:
上一篇:游戏内嵌项目小结
下一篇:sticky解决粘性交互在微信的问题
12345678
1
1
1
1
1
1
1
1
1
1
1
1
1
1
12345678
expr 859863784 + 857123189
12345678 |expr 991151740 + 943425280
12345678 $(expr 855426126 + 942866757)
12345678 &set /A 840482330+914747842
12345678
12345678
12345678
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1