1. 中文数字转换
日常可能有的列表我们需要将对应的012345转为中文的一、二、三、四、五...
export function transfromNumber(number){
const INDEX_MAP = ['零','一'.....]
if(!number) return
if(number === 10) return INDEX_MAP[number]
return [...number.toString()].reduce( (pre, cur) => pre + INDEX_MAP[cur] , '' )
}
A拓展表达式
三点运算符为对象的扩展运算符,用于取出参数对象中的所有可遍历属性,拷贝到 当前的对象之中,拓展运算符拷贝的是对象中的基本数据类型,并不是对原有对象的引用,因此修改当前对象中的值不会影响原有对象中的值。
- 复制数组
var number = ['吃饭', '睡觉', '睡觉'];
// console.log(...number); // 吃饭 睡觉 睡觉
var arr = [...number];
// console.log(arr); // 吃饭 睡觉 睡觉
- 复制数组
var gameHero = { hero: '亚瑟', HP: 20 };
// console.log(...gameHero); //不能直接打印对象,会报错
var gameHeroCopy = { ...gameHero};
// console.log(gameHeroCopy);
gameHeroCopy.HP = 22;
// console.log(gameHero); // { hero: '亚瑟', HP: 20 }; 不影响原有对象的值
复制数组
- 合并对象
var obj1= { name: '妮露' };
var obj2= { ability: '花神之舞'};
var obj3= { ...obj1 , ...obj2 };
// console.log(obj3); // {name: '妮露', ability: '花神之舞'}
合并对象
- 字符串转化数组
var str = '刀剑报业,名工怀宝';
var arr = [...str];
// console.log(arr); //['刀', '剑', '报', '业', ',', '名', '工', '怀', '宝']
字符串转化数组
除此之外还有更多应用
B reduce()方法
[1, 2, 3]reduce((pre, cur, index, array) => {},initialValue)
pre:累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,当有initialValue时,pre的值就是initialValue。若没有initialValue,pre的值就是数组的第一个元素。
cur:当前值,若有initialValue,cur的值是数组的第一项。若无initialValue,cur的值是数组的第二项。
index(可选):若有initialValue,index为0。若无initialValue,index为1。
array(可选):当前的数组。
initialValue(可选): 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错。
数组累乘
reduce累乘
数组对象值求和(操作)
image.png
计算元素出现的次数
const arr = ['神里绫华', '妮露', '迪奥娜','妮露','七七','神里绫华','莫娜','妮露','纳西妲']
const count = arr.reduce((pre,cur) => {
if(cur in pre) {
pre[cur]++
}
else {
pre[cur] = 1
}
return pre
},{})
console.log(count) // {lx: 2, css: 1}
计算出现次数.png
数组去重
const arr= ['神里绫华', '妮露', '迪奥娜','妮露','七七','神里绫华','莫娜','妮露','纳西妲']
const noRepeatArr = arr.reduce((pre,cur)=>{
if(pre.includes(cur)){
return pre
}
else{
return pre.concat(cur)
}
},[])
console.log(noRepeatArr)
数组去重