• 阿里笔试js题


    有一个数组,其中保存的都是小写英文字符串,现在要把它按照除了第一个字母外的字符的字典顺序(字典顺序就是按首字母从a-z顺序排列,如果首字母相同则按第二个字母……)排序,请编写代码:

    例:
    ["abd","cba","ba",]
    排序后
    ["ba","cba","abd"]

    好吧,我在准备笔试,不说了,贴代码:

    function arraySort(arr){
    			return arr.sort(function(a,b){
    				if(a.substring(1)>b.substring(1)){
    					return 1;
    				}else{
    					return -1;
    				}
    			});
    		}
    alert(arraySort(["abd","cba","ba"]));
    

     2、如何用代码将类数组如arguments转换为数组:

    Array.prototype.slice.call(arguments,0);

    3、请为JavaScript每个Array对象添加一个类似于PHP的shuffle()(意思就是将数组重新排列)的方法。粘代码:

    我的代码:

    Array.prototype.shuffle=function(){
    			var len=this.length;
    			var b=[];
    			for(var i=0;i<len;i++){
    				var index=parseInt(Math.random()*(len-i));
    				b[i]=this[index];
    				this.splice(index,1);
    			}
    			for ( i = 0; i <len; i++) {
    				this[i]=b[i];
    			};
    		}
    		var a=[1,2,3,4,5,6,7,8];
    		a.shuffle();
    		alert(a);
    

     写完之后就感觉,写的好笨啊,能不能简单点呢?

    改!

     Array.prototype.shuffle = function() {
                for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
                return this;
            };
    

      是不是简单多了,而且有逼格,少用了一个循环,开始咋那么笨!

  • 相关阅读:
    核心思想:台积电目前的硬体核心技术/制造人力估计不到1,000人
    忽然懂了:云就是互联网
    Qt https 用户认证authenticationRequired()
    TDD和BDD
    MEF实现设计上的“松耦合”
    跨域调用webapi
    复杂度
    react
    Angularjs里面跨作用域
    Spring.NET程序
  • 原文地址:https://www.cnblogs.com/dunken/p/4363235.html
Copyright © 2020-2023  润新知