为什么$ .each有效但arr.each没有

时间:2017-07-24 12:59:55

标签: javascript jquery

你能解释一下为什么$.each有效,但arr.each没有?这是我的情况:

$('.btnbtnbtn').on('click', function () {
    var pesho = {
        name: "pesho",
        value: 23
    };
    var gosho = {
        name: "gosho",
        value: 25
    };
    var arr = [pesho, gosho] ;    

    $.each(arr, function (key, value) {
        console.log(value.name, value.value)
    });
    return false;
});

这是工作示例,但如果我将$.each替换为arr.each(function...)则无法正常工作。 我认为这是一回事。提前谢谢!

4 个答案:

答案 0 :(得分:3)

正如已经说过的,正确的实现是:

以下是如何恰当使用每一个的工作示例:

var pesho = {
  name: "pesho",
  value: 23
};

var gosho = {
  name: "gosho",
  value: 25
};

var arr = [pesho, gosho];

$.each(arr, function(key, value) {
  $("#jQueryEach").append("<div>" + value.name + ": " + value.value + "</div>");
});

arr.forEach(function(item, key) {
  $("#jsArrayforEach").append("<div>" + item.name + ": " + item.value + "</div>");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <span>jQuery Each:</span>
  <div id="jQueryEach">
  </div>
</div>
<hr>
<div>
  <span>Javascript Array forEach:</span>
  <div id="jsArrayforEach">
  </div>
</div>

答案 1 :(得分:1)

Javascript的原生数组没有每个功能,但是有foreach功能与JQuery的功能相同

答案 2 :(得分:0)

本机JS中没有“each”这样的东西。

forEach可用于迭代数组。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

这与jQuery的$.eachjQuery.each( array, callback ))的第一个签名基本相同。 https://api.jquery.com/jquery.each/

请注意,jQuery.each()也可用于迭代属性对象(jQuery.each( object, callback )而不是数组。在这种情况下,回调的签名略有不同。本机JS等效于此类循环将是for...in https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

答案 3 :(得分:-1)

each()是一个只与jquery对象一起工作的jquery函数,为了使arr.each()可行,请将arr转换为Jquery对象,将arr.each()替换为$(arr).each(function。 ....),它应该工作

希望它能帮到你