@lizlalala
2016-11-12T11:05:53.000000Z
字数 960
阅读 1137
坑
js
css
sort()
楼主最近在刷leetcode,写threeSum的时候需要对数组进行排序。但是出来的结果始终不对。调试了以后才发现sort()函数与想象中不太一样:
sort()方法:如果省略参数,数组项会先根据toString()函数将其值转换成字符串在进行比较,是按UNICODE进行比较的,然后根据这个进行排序。
因此会导致下面的情况产生。
为了避免这种情况,需要自定义比较函数
let arr = [-4,-2,-1];
arr.sort((a,b)=> a-b)
set of array of array
通常我们可以用set来unique一个数组,类似于
[...new Set([1,2,2,3])] or Array.from(new Set([1,2,2,3]))
但是对于array of array就比较尴尬了..因为js里面数组是对象,两个数组的引用是不一样的。所以当你输入这样的值
Array.from(new Set([[1],[1]]))
其实是不会起到任何作用的。
暂时的搓搓的方法,只能之前用json.stringify处理一遍。
resultSet.add(JSON.stringify([1,2]));
result = Array.from(resultSet).map(a=> JSON.parse(a));
calc不生效
嗯,因为操作符左右没有空格 =。=
calc(100vh-64px) //wrong
calc(100vh - 64px) //correct
4,js获取元素width
在js中,是不能用 element.style.width来获取元素的宽度的。这种方法只能获取行内样式(即写在html里面的样式)。即js和css是独立的。
需要通过
element.style.offsetWidth
来获取。