资讯专栏INFORMATION COLUMN

js编程小题

SimonMa / 3361人阅读

摘要:在,非对象的参数将被强制转换为一个对象。方法方法方法一些类型转换的例子求输出值求输出值具体解释戳这里功能是实现了,,不过代码有待改进

实现函数,类似jquery链式调用
var origin = [  
    {id:1,title:"title1"},  
    {id:2,title:"abcd"},  
    {id:3,title:"title2"},  
    {id:4,title:"efg"}  
];  
  

var find = function(data){  

    this.data = data;

    this.where = function(obj){
        var key = Object.keys(obj),
            val = obj[key];
        this.data = this.data.filter(function(x){
            return val.test(x[key]);
        })

        return this;
    };

    this.order = function(key,val){        //不造desc啥意思
        return this.data.sort(function(s1,s2){
            return s2[key] - s1[key]
        });
    }

    return {
        data:this.data,
        where:this.where,
        order:this.order
    }
}  
  
var result = find(origin).where({"title":/d$/}).order("id","desc"); //desc 非递增  
console.log(result);
实现目前一些主流框架的循环渲染
var items = [  
    {name:"item1"},  
    {name:"item2"}  
];  
var str = "
{{item.name}}
"; var ParseDom = function(str){ var reg1 = /sali-for="[a-zA-Zs]+"/gi, reg2 = /{{2}[a-zA-Z.]+}{2}/gi, reg3 = /.[a-zA-Z]+/gi, len = items.length; var temp = str.replace(reg1,""), fill = str.match(reg2)[0], key = str.match(reg2)[0].match(reg3)[0].slice(1), clone_temp ="", str = ""; for(var i=0;i 有一个长度为100的数组,以优雅的方式求出该数组的前10个元素之和
var aa = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
        sum = 0;

    sum = a.slice(0,11).reduce(function(pre,current){
        return pre + current;
    });

    console.log(sum);
不使用loop循环,创建一个长度为10的数组,并且每个元素的值等于于它的下标
// 方法1:
var q = Array(10).join(",").split(",").map(function(item,idx){
        return idx;
    });
    console.log(q);

// 方法2:
Object.keys(String(Array(11));
// 在ES5,如果此方法的参数不是一个对象(原始的),那么它会造成 TypeError。
// 在ES2015,非对象的参数将被强制转换为一个对象。

// 方法3:
Array.from({length:10},(v,i)=>i)

// 方法4:
[...Array(10).keys()]


// 方法5:
Array(10).fill().map((v,i)=>i)

一些类型转换的例子:
http://frontenddev.org/link/c...
http://javascript.ruanyifeng....
http://www.cnblogs.com/rubylo...

求输出值1
var test = (function(a){
        this.a = a;
        return function(b){
            return this.a + b;
        }
    }(function(a,b){
        return a;
    }(1,2)))


    console.log(test(4))    //5
求输出值2
var a = {n:1};  
var b = a; 
a.x = a = {n:2};  
alert(a.x);    // --> undefined  
alert(b.x);    // --> {n:2}

具体解释:戳这里

功能是实现了,,不过代码有待改进^^

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80346.html

相关文章

  • JavaScript填坑史

    摘要:和深入理解在和深入理解这篇博客里笔者曾做过总结,我们知道试单线程的产物,两个函数就是利用了插入代码的方式实现了伪异步,和的原理实际上是一样的。综上所述,其实终归是单线程产物。无论如何异步都不可能突破单线程这个障碍。 说明:  这是笔者平时积累的一些觉得比较有意思或是比较有难度的JavaScript题目理解和心得,会保持长期更新。 1.setTimeout和setInterval深入理解...

    objc94 评论0 收藏0
  • leetcode小题解析

    摘要:如果两者相等,则认为两个单词是同素异形体所以需要慢慢进行尝试来弄清楚哪些是合法的数字。代码去除前后的空格小数点前面不能出现和小数点前面不能出现,并且需要有数字保证后面也有数字符号只能再位和后面一位 描述Given an array of integers, return indices of the two numbers such that they add up to a spec...

    evin2016 评论0 收藏0
  • leetcode小题解析

    摘要:如果两者相等,则认为两个单词是同素异形体所以需要慢慢进行尝试来弄清楚哪些是合法的数字。代码去除前后的空格小数点前面不能出现和小数点前面不能出现,并且需要有数字保证后面也有数字符号只能再位和后面一位 描述Given an array of integers, return indices of the two numbers such that they add up to a spec...

    sewerganger 评论0 收藏0
  • 《JavaScript设计模式与开发实践》 —— <阅读小札·一>

    摘要:阅读小札一阅读前自大学课上,就开始接触设计模式,但对设计模式却鲜有研究与实践。第二部分是核心部分,由浅到深讲解个设计模式。设计模式遵循的原则所有设计模式罪训的一条原则就是找出程序中变化的地方,并将变化封装起来。 阅读小札 · 阅读前 自大学Java课上,就开始接触设计模式,但对设计模式却鲜有研究与实践。最近向公司反映和游说技术提升,得以获得公司提供购书机会,借此认真学习前端学习之路的...

    Yangder 评论0 收藏0
  • 还在用Synchronized?Atomic你了解不?

    摘要:失败重试自旋比如说,我上面用了个线程,对值进行加。我们都知道如果在线程安全的情况下,这个值最终的结果一定是为的。那就意味着每个线程都会对这个值实质地进行加。 前言 只有光头才能变强 之前已经写过多线程相关的文章了,有兴趣的同学可以去了解一下: https://github.com/ZhongFuCheng3y/3y/blob/master/src/thread.md showImg(h...

    陈江龙 评论0 收藏0

发表评论

0条评论

SimonMa

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<