zoukankan      html  css  js  c++  java
  • js keys方法和foreach方法区别

           keys和foreach都有遍历对象的功能,但他们可以遍历的对象类型是不一样的,foreach是数组对象的方法,而keys是Object对象的方法。换句话说,foreach只能数组对象使用,而keys任何对象都能使用。

    1.Object.keys

           其实从字面我们就可以看出来keys代表的是键值对中的键,所以keys的作用是遍历对象中属性的键,以数组的形式返回,下面是几个具体的例子

       var a = {
           name: "lin",
           age: "10岁"
       };
    
       var b = {
           2: "lin",
           1: 10
       };
    
       var c = {
           sayName: function () {
               console.log(this.name);
           },
           2: "lin",
           1: "10岁"
       };
    
       var d = ["lin", 10, "man"];
    
     console.log(Object.keys(a)); //["name", "age"]
     console.log(Object.keys(b)); //[1, 2], 可以看到,当键为数字时,keys方法会自动帮我们从小到大排序
     console.log(Object.keys(c)); //[1, 2, sayName], 可以看到,当键为数字时,keys方法会自动帮我们从小到大排序,并且把键为字符串的排到最后
     console.log(Object.keys(d)); //[0, 1, 2],其实就是返回数组的下标

    2.[].foreach

           foreach,也是遍历的作用,但是只能数组对象使用,当一个非数组调用时会抛出错误,下面是几个常见的例子

      

        var a = ["lin", 10, "man"];
    
        var b = {
            name: "lin",
            age: "10岁",
            sex: "man"
        }
    
        a.forEach(function (value, index) {     //控制台打印:0的值为lin,1的值为10,2的值为man
            console.log(index + "的值为" + value);
        })
    
        b.forEach(function (value, index) {     //报错,因为b不是数组对象,无法使用foreach
            console.log(index + "的值为" + value);
        })

    3.[].foreach和JQuery的each区别:

          [].forEach(function(value, index, array) {}); 注意foreach第一个参数为值,第二个参数为键,第三个参数为执行的数组

          $.(function(index, value, array) {}); 注意each第一个参数为键,第二个参数为值,第三个参数为执行的数组,类似的$.map也是如此  
  • 相关阅读:
    关于在windows平台下将应用制作成windows服务及服务依赖的感想
    mysql 变量赋值的三种方法
    如何上传本地jar至远程仓库供其他项目使用
    maven的标准
    修改idea的缓存
    前端的网站
    读取简单的xml
    IDEA 自动设置compile target变成1.5
    注解导出优化版(推荐,十分强大)
    Linux命令干货!!!最常用的命令
  • 原文地址:https://www.cnblogs.com/yonglin/p/7822105.html
Copyright © 2011-2022 走看看