JavaScript前端面试题持续更新

1、数组去重

// 原生写法


var shuffle_array = [1, 2, 1, 2, 3, 4, 1, 2, 3, 9, 8, 7, 7];
    // 数组去重
    function Toralds (arr) {
        for (var i = 0; i < arr.length - 1; i ++) {
            for (var j = i + 1; j < arr.length; j ++) {
                if (arr[i] == arr[j]) {
                    arr.splice(j, 1);
                    j --;
                }
            }
        }
        return arr;
    }
    console.log(Toralds(shuffle_array));


// ES6数据结构 Set 写法 
var shuffle_array = [1, 2, 1, 2, 3, 4, 1, 2, 3, 9, 8, 7, 7];
var new_array = new Set(shuffle_array);
console.log(new_array);
// 因为去重过后Set数据结构并不是Array类型
// 进行Array转换(使用Array.from)
console.log(Array.from(new_array));


//1) Set add方法:

let set1 = new Set()
set1.add(1)
set1.add(2)
set1.add(3)
console.log('added:', set1) // added: Set {1, 2, 3}

//2) 删除Set中的元素

let set1 = new Set()
set1.add(1)
set1.add(2)
set1.add(3)
set1.delete(1)
console.log('deleted:', set1) // deleted: Set { 2, 3 }

//3) 判断某个元素是否存在(返回布尔值)

let set1 = new Set()
set1.add(1)
set1.add(2)
set1.add(3)
set1.delete(1)
console.log('has(1):', set1.has(1)) // false
console.log('has(2):', set1.has(2)) // true

// 5)清除Set中的所有元素

let set1 = new Set()
set1.add(1)
set1.add(2)
set1.add(3)
set1.clear()
console.log('cleared:', set1) // cleared: Set {}


// 6) 遍历

可以使用Set实例对象的keys(),values(),entries()方法进行遍历。

由于Set的键名和键值是同一个值,它的每一个元素的key和value是相同的,所有keys()和values()的返回值是相同的,entries()返回的元素中的key和value是相同的。

let set5 = new Set([4, 5, 'hello'])
console.log('iterate useing Set.keys()')
for(let item of set5.keys()) {
  console.log(item)
}
// iterate useing Set.keys()
// 4
// 5
// hello

console.log('iterate useing Set.values()')
for(let item of set5.values()) {
  console.log(item)
}

// iterate useing Set.values()
// 4
// 5
// hello

console.log('iterate useing Set.entries()')
for(let item of set5.entries()) {
  console.log(item)
}

// iterate useing Set.entries()
// [ 4, 4 ]
// [ 5, 5 ]
// [ 'hello', 'hello' ]

  

猜你喜欢

转载自www.cnblogs.com/phpcurd/p/10280816.html