js一些题目

1、对象里面的key不区分出string

var a={};
a[1]="a";
a["1"]=2;

console.log(a);

  

2、扩展Array原型,编写一个去除数组重复项的方法

// 算法一,两层循环,性能差
Array.prototype.unique = function(){
    var len = this.length, i;

    // 两两比较(数组长度大于1)
    while ( --len > 0 ) {
        i = len;
        while ( --i >= 0 ) {                    // 前一项索引最小为0
            if ( this[len] === this[i] ) {      // 最后一项与前一项进行比较
                //this.splice(i, 1);            // this.length自动减一,删除前面的重复项
                this.splice(len, 1);            // this.length自动减一,删除后面的重复项
                i--;
            }
        }
    }
    return this;
};

// 算法二,性能优化
Array.prototype.unique = function(){
    var i, key, len = this.length,
        cache = {},        // 缓存对象
        ret = [];    // 要返回的数组

    for ( i = 0; i < len; i++ ) {
        key = typeof this[i] + this[i];
        if ( cache[key] !== 1 ) {
            cache[key] = 1;
            ret.push( this[i] );
        }
    }

    return ret;;
};

// 解决方法三,直接使用jQuery.unique工具函数
var arr = [1,3,4,6,9,10,4,6];
arr = jQuery.unique( arr );    // [1, 3, 4, 6, 9, 10]

  

js一些题目

时间: 2024-10-05 11:26:40

js一些题目的相关文章

JS经典题目解析

此次列举出一些觉得有意思的JS题目(来源于出了名的44题),相信有非常多关于这些题目的博客,写这篇博客的目的在于巩固一些知识点,希望能和读者共同进步. 1. map函数执行过程 ["1", "2", "3"].map(parseInt) 答案: [1, NaN, NaN] 解析: map(function callback(current, index, array)), map 回掉提供三个参数,current value, index of

一道短小精悍的JS小题目

看到题目你是不是以为我在开车,没错,我就不承认,你能咋的,你瞅啥,别瞅我,瞅题 题目是这样式的 结果是啥呀,这里我就不买关子了,结果是undefined,相信基础好一点的大佬们一眼就能看出来,像我这种就必须两只眼一起看,这里我又想问一句了,大佬们闭着一只眼看代码不累吗 让我们先简单明了的来解释一下上面的代码 首先foo()实际上是由window调用的 由于普通函数this指向调用他的对象,所以foo中的this实际上指向的window 而此时又相当于是window调用了bar函数,所以bar里面

js常见题目

1.用正则表达式实现字符串首尾空格删除功能. <script> var string="abcdef"; str=str.replace(^s*|s*$,"); alert("str"); </script> 2.写一个hack样式实现在IE6.IE7.firefox下分别使用不同的颜色. background:blue; *background:red !important; _background:yellow; 3.列出4个h

js程序题目

1.写出下列输出 var a = 10; sayHi(); function sayHi(){ a = a + 10; console.info(a); return a; } console.log(a); console.log(sayHi() + 10); 2.写出下列输出 var a = 10; sayHi(); function sayHi(){ var a = a + 10; console.info(a); return a; } console.log(a); console.l

js坑爹笔试题目汇总(持续更新中)

把你的面试官问倒,你就是一个合格的面试者了,下面总结一些易错的js笔试题目,会持续更新中,欢迎关注 1,考察this var length = 10 function fn(){ alert(this.length) } var obj = { length: 5, method: function(fn) { fn() // ? arguments[0]() // ? } } obj.method(fn) 这里的坑主要是arguments,我们知道取对象属于除了点操作符还可以用中括号,这里fn

html+css+js实现复选框全选与反选

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <title>html+css+js实现复选框全选与反选</title> 5 <meta http-equiv="content-type&qu

js 测试

今天js测试题目: 被基础题目虐暴......惨不忍睹 1. var num = 2; switch(num){ case 1: console.log("1"); case 2: console.log("2"); default: console.log("default"); }输出结果为()// 2和default: 从2进入switch,因为没有break:所以2以后的都要执行. 2.js中的命名法: 1)匈牙利命名法 2)大驼峰 3)

js parseInt和map函数

今天看了一个js的题目["1","2","3"].map(parseInt),看到后脑海中浮现的答案是[1,2,3],但是看到正确答案后蒙了,不知道为什么答案会是[1,NaN,NaN],看了解释(http://developer.51cto.com/art/201504/474298_2.htm)但是还是没明白,没办法,只好重新无看下parseInt和map函数了. 1.parsrInt() 以前一直只有用到parseInt(x),返回一个整数,

web版本四则运算

//Szys.jsp1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.d