# Array String
# 数组中字符串键值的处理
- js数组一般是通过数字进行索引,但有趣的是它们也是对象,所以也包含字符串键值和属性,但是这些不会被包含在数组的长度(length)中
- 如果字符串键值能够被强制转换为数字的话,就会被当作数字索引来处理
const arr = [];
arr[0] = 1;
arr['1'] = '嘿嘿';
arr['cym'] = 'cym';
console.log(arr); // [1, '嘿嘿', cym: 'cym']
console.log(arr.length); // 2
1
2
3
4
5
6
2
3
4
5
6
# JSON.stringify 的第二个参数
// 数组
const obj = {
a: 42,
b: 30,
c: 100,
};
JSON.stringify(obj, ['a', 'c']); // {"a":42,"c":100}
// 函数
const obj = {
a: 42,
b: 30,
c: 100,
};
JSON.stringify(obj, (k, v) => {
// 注意:第一次 k 是 undefined,v 是原对象
if (k !== 'c') return v;
}); // "{"a":42,"b":30}"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 奇偶数判断
const isEven = num => num % 2 === 0;
1
# 格式化金钱数字
function formatPrice(price) {
return String(price).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}
// toLocaleString
(999999999).toLocaleString(); // 999,999,999
// 当然还可以更秀一点
const options = {
style: 'currency',
currency: 'CNY',
};
(123456).toLocaleString('zh-CN', options); // ¥123,456.00
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
← apply call bind babel →