javascript常问面试题:获取浏览器页面有多少个标签数量

编程知识 更新时间:2023-05-03 01:21:40

第一种:set (ES6新特新)

 

new Set(document.getElementsByTagName('*')).size

image

第二种:遍历去重

 

function unique(arr){
    var newArr = [];
    for(var i = 0; i < arr.length; i++){
        for(var j = i+1; j < arr.length; j++){
            if(arr[i] == arr[j]){
                ++i;
            }
        }
        newArr.push(arr[i]);
    }
    return newArr;
}
var arr = [1,2,2,3,5,3,6,5];
var newArr = unique(arr);
console.log(newArr);

image

Set(ES6的新特性):

或者 可以这么写

 

const s = new Set();
[2,3,4,5,7,4,2,1,2].forEach(x => s.add(x));
console.log(s.size());//去重打印

疑问:如何判断浏览器是否支持ES6?

可以在浏览器里面试试如下函数

 

()=>{}//箭头函数,如果不报错,那就是 支持的。
//或者 如果没报错说明 支持 Set函数 支持 ES6
const s = new Set();

Set的其他用法:

 

// 例一
const set = 
new Set([1, 2, 3, 4, 4]);
[...set]// [1, 2, 3, 4]

// 例二
const items = 
new Set([1, 2, 3, 4, 5, 5, 5, 5]);
items.size // 5

// 例三
const set = 
new Set(document.querySelectorAll('div'));
set.size // 56

// 类似于
const set = new Set();
document
 .querySelectorAll('div')
 .forEach(div => set.add(div));
set.size // 56

判断值否存在:

 


// Set的写法
const properties = new Set();

properties.add('width');
properties.add('height');

if (properties.has(someName)) {
  // do something
}

数组去重:

 

const items = 
new Set([1, 2, 3, 4, 5, 5, 3]);
const array = Array.from(items);
function dedupe(array) {
  return Array.from(new Set(array));
}

dedupe([1, 1, 2, 3]) // [1, 2, 3]```

Array.from:就是将一个类数组对象或者可遍历对象转换成一个真正的数组。

Array.from:就是将一个类数组对象或者可遍历对象转换成一个真正的数组

let arrayLike = {
    0: 'tom', 
    1: '65',
    2: '男',
    3: ['jane','john','Mary'],
    'length': 4
}
let arr = Array.from(arrayLike)
console.log(arr) 
// ['tom','65','男',['jane','john','Mary']]

更多set用法:

http://es6.ruanyifeng/#docs/set-map#Set

疑问:如何解决ES6不兼容IE浏览器的问题

1、安装插件babel-polyfill

npm install --save babel-polyfill

2、使用

//在项目的src目录下找到入口文件,添加代码:
import 'babel-polyfill';

更多推荐

javascript常问面试题:获取浏览器页面有多少个标签数量

本文发布于:2023-04-29 20:35:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/ddffba9525d3a11b9fe9b24bf4c06eab.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:有多少个   面试题   浏览器   数量   标签

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 112137文章数
  • 28536阅读数
  • 0评论数