1.转换星期
let arr = [0,1,2,2,3,3,3,4,4,4,4,6]
let arr2 = arr.map(补全代码)
console.log(arr2) // [‘周日’, ‘周一’, ‘周二’, ‘周二’, ‘周三’, ‘周三’, ‘周三’, ‘周四’, ‘周四’, ‘周四’, ‘周四’,‘周六’]
代码:
let arr2 = arr.map(item => {
const hash = { 0: '周日', 1: '周一', 2: '周二', 3: '周三', 4: '周四', 5: '周五', 6: '周六', }
return hash[item];
})
2.筛选分数
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(item => item > 60)
3.求奇数之和
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) => {
if (n % 2 != 0) {
sum += n;
} return sum;
}, 0)
4.面试题
将数组
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: [] })