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也是如此  
  • 相关阅读:
    解决:信息中插入avi格式的视频时,提示“unsupported video format”
    java字节数组和16进制之间的转换
    16进制转换字节数组工具类
    如何在ubuntu 12.04 中安装经典的 GNOME桌面
    Ubuntu安装软件提示”需要安装不能信任的软件包”解决办法
    Ubuntu系统下运行Eclipse出现找不到jre的问题的解决方法
    ubuntu添加共享出错
    从scrapy使用经历说开来
    有趣的问题--12 coins problem
    一个奇怪的MySQL错误返回
  • 原文地址:https://www.cnblogs.com/yonglin/p/7822105.html
Copyright © 2011-2022 走看看