数组跟对象的转换
let arr = [
{名称:'动物', id: 1 ,parent: null},
{名称:'狗', id: 2 ,parent: 1},
{名称:'猫', id: 3 ,parent: 1}
]
使以上数组变成以下对象
{
id:1,名称: '动物', children: [
{id:2,名称: '狗', children: null },
{id:3,名称: '猫', children: null },
]
}
实现方法如下:
arr.reduce((result, item)=> {
if(item.parent === null){
result.id = item.id
result['名称'] = item['名称']
}else{
result.children.push(item)
delete item.parent
item.children = null
}
return result
},{id:null, children:[]})
把数字变成星期
let arr = [0,1,2,2,3,3,3,4,4,4,4,6]
let arr2 = arr.map(补全代码)
console.log(arr2) // ['周日', '周一', '周二', '周二', '周三', '周三', '周三', '周四', '周四', '周四', '周四','周六']
实现1:(但不能把后续数字变成中文)
let arr2 = arr.map(item =>{
if (item >0 ){
return '星期'+ item}else{
return '星期日'
}
})
//["周日", "周1", "周2", "周2", "周3", "周3", "周3", "周4", "周4", "周4", "周4", "周6"]
完整实现:
let arr2 = arr.map((i)=>{ return {0:'周日',1:'周一',2:'周二',3:'周三',4:'周四',5:'周五',6:'周六'}[i] })
找出所有大于 60 分的成绩
let scores = [95,91,59,55,42,82,72,85,67,66,55,91]
let scores2 = scores.filter(补全代码)
console.log(scores2) // [95,91,82,72,85,67,66, 91]
实现方法如下:
let scores2 = scores.filter(i => i>60 )
算出所有奇数之和
let scores = [95,91,59,55,42,82,72,85,67,66,55,91]
let sum = scores.reduce((sum, n)=>{
补全代码
},0)
console.log(sum) // 奇数之和:598
实现方法如下:
let sum = scores.reduce((sum, n)=>{
return (n%2 === 1 ? sum + n :sum )
},0)