第二十天
(题目来源: 前端每日知识3+1)
Javascript题目
如何快速让一个数组乱序, 写出来
问题解答
// 使用sort方法
function shuffle(array) {
// for (let i = array.length - 1; i > 0; i--) {
// let j = Math.floor(Math.random() * (i + 1))[array[i], array[j]] = [array[j], array[i]]
// }
array.sort(() => Math.random() - .5) // sort方法改变原数组,返回值也是
return array
}
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