数组去重常用方法?

31 阅读1分钟

一省:HTML

7. XHTML与HTML有何不同?

XHTML是什么?

  • XHTML 指可扩展超文本标签语言(EXtensible HyperText Markup Language)。
  • XHTML 的目标是取代 HTML。
  • XHTML 与 HTML 4.01 几乎是相同的。
  • XHTML 是更严格更纯净的 HTML 版本。
  • XHTML 是作为一种 XML 应用被重新定义的 HTML。
  • XHTML 是一个 W3C 标准。

最主要的不同:

  • XHTML 元素必须被正确地嵌套。
  • XHTML 元素必须被关闭。
  • 标签名必须用小写字母。
  • XHTML 文档必须拥有根元素。

二省: CSS

7. BFC是什么?怎么触发BFC?

BFC(Block Formatting Context, 块级格式化上下文)是指浏览器中创建了一个独立的渲染区域,该区域内所有元素的布局不会影响到区域外元素的布局,这个渲染区域只对块级元素起作用。

以下方式会创建BFC

  • 根元素(<html>)
  • 浮动元素(float值不为 none)
  • 定位元素(position值为absolute或fixed)
  • display值为inline-block、inline-flex、flex、flow-root、table-caption、table-cell
  • overflow值不为visible、clip

三省:JavaScript

7. 数组去重常用方法?

  1. new Set()
var newArr = new Set(arr)

Set中不允许有重复元素。

  1. filter() + indexOf()
var newArr = arr.filter((item, index) => {
  return arr.indexOf(item) === index
})
  1. 双重for循环
for(var i=0; i<arr.length; i++){
    for(var j=i+1; j<arr.length; j++){
        if(arr[i]==arr[j]){
            arr.splice(j,1);
            j--;
        }
    }
}
  1. sort()
arr = arr.sort()
var newArr = [arr[0]]
for(let i=1; i<arr.length; i++){
  if(arr[i] !== arr[i-1]){
    newArr.push(arr[i])
  }
}

先排序,再比较下一个元素跟当前元素是否一样。

  1. includes()
arr.forEach((item) => {
  if(!newArr.includes(item)){
    newArr.push(item)
  }
})

includes 检测数组是否有某个值