第二十天


(题目来源: 前端每日知识3+1)

Javascript题目

如何快速让一个数组乱序, 写出来

问题解答

  1. // 使用sort方法
  2. function shuffle(array) {
  3. // for (let i = array.length - 1; i > 0; i--) {
  4. // let j = Math.floor(Math.random() * (i + 1))[array[i], array[j]] = [array[j], array[i]]
  5. // }
  6. array.sort(() => Math.random() - .5) // sort方法改变原数组,返回值也是
  7. return array
  8. }
  9. console.log(shuffle([1, 2, 31, 1, 3, 23, 2133, 2, 123, 1, 23]));

解题思路

知识扩展

  • form表单中的enctype属性: 表单数据提交时使用的编码类型, 默认使用”application/x-www-form-urlencoded“, 如果是使用POST请求, 则请求头中的content-type指定值就是该值. 如果表单中有上传文件, 编码类型需要使用”multipart/form-data”, 类型, 才能完成传递文件数据.post:enctype 默认”application/x-www-form-urlencoded”对表单数据进行编码, 数据以键值对在http请求体重发送给服务器; 如果enctype 属性为”multipart/form-data”, 则以消息的形式发送给服务器.
  • 为什么0.1+0.2!=0.3: JavaScript采用的是双精度的标准, IEEE754标准, 双精度标准64位, 第一位表示符号位也就是正负值, 0表示负数1表示正数 指数为11位, 有效数有52位, 如何等于0.3呢 使用toFixed的方法将运算数浮点化, 然后保留几位小数parseFloat(a + b).toFixed(5)
  • 小数二进制原则: 整数部分对2取余然后逆序排列, 小数部分乘2取整数部分, 然后顺序排列
  • js改变原数组的:shift(返回删除的元素), unshift(返回插入时数组的长度), pop, push, reverse, sort, splice
    js不改变原数组的:concat, json, slice, map, filter, forEach, some, eveery, reduce