[关闭]
@lizlalala 2016-11-12T03:05:53.000000Z 字数 960 阅读 1029

常见坑

js css


  1. sort()
    楼主最近在刷leetcode,写threeSum的时候需要对数组进行排序。但是出来的结果始终不对。调试了以后才发现sort()函数与想象中不太一样:

    sort()方法:如果省略参数,数组项会先根据toString()函数将其值转换成字符串在进行比较,是按UNICODE进行比较的,然后根据这个进行排序。
    因此会导致下面的情况产生。


    为了避免这种情况,需要自定义比较函数

    1. let arr = [-4,-2,-1];
    2. arr.sort((a,b)=> a-b)
  2. set of array of array
    通常我们可以用set来unique一个数组,类似于

    1. [...new Set([1,2,2,3])] or Array.from(new Set([1,2,2,3]))

    但是对于array of array就比较尴尬了..因为js里面数组是对象,两个数组的引用是不一样的。所以当你输入这样的值

    1. Array.from(new Set([[1],[1]]))

    其实是不会起到任何作用的。
    暂时的搓搓的方法,只能之前用json.stringify处理一遍。

    1. resultSet.add(JSON.stringify([1,2]));
    2. result = Array.from(resultSet).map(a=> JSON.parse(a));
  3. calc不生效
    嗯,因为操作符左右没有空格 =。=

  1. calc(100vh-64px) //wrong
  2. calc(100vh - 64px) //correct

4,js获取元素width
在js中,是不能用 element.style.width来获取元素的宽度的。这种方法只能获取行内样式(即写在html里面的样式)。即js和css是独立的。
需要通过

  1. element.style.offsetWidth

来获取。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注