自我介绍
讲讲项目
轮播图实现的原理
null 和 undefined 的区别
null == undefined 的值是什么,为什么
闭包打印 1-9
splice、filter、join、split 用法
数组转成字符串
1000 个 button 需要注册点击事件,怎么实现
事件代理(委托)优缺点
优点: 1.可以大量节省内存占用,减少事件注册。比如 ul 上代理所有 li 的 click 事件就很不错。 2.可以实现当新增子对象时,无需再对其进行事件绑定,对于动态内容部分尤为合适 缺点:事件代理的常用应用应该仅限于上述需求,如果把所有事件都用事件代理,可能会出现事件误判。即本不该被触发的事件被绑定上了事件。
水平居中怎么实现
HTML5 CSS3 新特性
css 不兼容的情况有了解吗,怎么解决
浏览器兼容性问题解决方案~总结 浏览器 CSS 兼容前缀
-o-transform: rotate(7deg); // Opera -ms-transform: rotate(7deg); // IE -moz-transform: rotate(7deg); // Firefox -webkit-transform: rotate(7deg); // Chrome transform: rotate(7deg); // 统一标识语句
ES6 的东西知道哪些
let const var 的区别
箭头函数与普通函数的区别
手写一个数组去重
排序算法,sort 的用法解释一下
平时怎么学习前端,学了多久了,有实习经历吗
学习的过程中有自己做 demo 吗
自我介绍
项目介绍
轮播图的实现原理
知道哪些数组的方法
splice 和 slice 的区别
手撕代码
问题一: 实现数组 arr 根据 id 来排序
var arr = [ { id: 2, name: 'test', score: 50 }, { id: 3, name: 'test', score: 60 }, { id: 5, name: 'test1', score: 70 }, ]; function solution(arr) { return arr.sort((a, b) => a['id'] - b['id']); }
问题二:将 name 值相等的 score 加起来,例如问题一的 arr,返回 {test: 110, test1: 70}
var arr = [ { id: 2, name: 'test', age: 15, score: 60 }, { id: 2, name: 'test', age: 25, score: 60 }, { id: 3, name: 'test1', age: 25, score: 60 }, { id: 5, name: 'test2', age: 35, score: 60 }, ]; function solution(arr, attr) { var obj = {}; for (let i = 0; i < arr.length; i++) { var key = arr[i][attr]; if (!obj[key]) { obj[key] = arr[i]['score']; } else { obj[key] += arr[i]['score']; } } return obj; } console.log(solution(arr, 'name')); // {test: 120, test1: 60, test2: 60}
问题三:函数的第二个参数是个数组,比如 attr = ['id'] 就是将 id 的相同的 score 相加 attr = ['id', 'name'] 就是将 id 和 name 相同的 score 相加 attr = ['id', 'name', 'age'] 就是将 id、name 和 age 都相同的 score 相加
// 此问关键在于确定一个唯一的key var arr = [ { id: 2, name: 'test', age: 15, score: 60 }, { id: 2, name: 'test', age: 25, score: 60 }, { id: 3, name: 'test1', age: 25, score: 60 }, { id: 5, name: 'test2', age: 35, score: 60 }, ]; function solution(arr, attr) { var obj = {}; var str = attr.join('_'); // 2_test for (let i = 0; i < arr.length; i++) { var curr = arr[i]; var a = []; attr.forEach(ele => { a.push(curr[ele]); }); var key = a.join('_'); if (obj[key]) { obj[key] += curr['score']; } else { obj[key] = curr['score']; } } return obj; } console.log(solution(arr, ['id', 'name'])); // {2_test: 120, 3_test1: 60, 5_test2: 60}
浏览器缓存机制
怎样禁止缓存
项目中有用到缓存吗
你对加班怎么看
实习时间
反问
本文作者:毛超颖
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!