Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript在对象数组中查找整型属性值_Javascript_Jquery_Json - Fatal编程技术网

Javascript在对象数组中查找整型属性值

Javascript在对象数组中查找整型属性值,javascript,jquery,json,Javascript,Jquery,Json,这基本上是没有逻辑意义的事情,我不知道为什么会发生这种情况 当您创建一个函数来比较对象数组(本质上是JSON对象)的属性值时,它拒绝查找索引。然而,在功能之外,它似乎工作得非常好 然而,问题是 var peoples = [ { "name": 44, "dinner": "pizza" }, { "name": 65, "dinner": "sushi" }, { "name": 33, "dinner": "hummus" } ]; var val = 33; $("#t").

这基本上是没有逻辑意义的事情,我不知道为什么会发生这种情况

当您创建一个函数来比较对象数组(本质上是JSON对象)的属性值时,它拒绝查找索引。然而,在功能之外,它似乎工作得非常好

然而,问题是

var peoples = [
  { "name": 44, "dinner": "pizza" },
  { "name": 65, "dinner": "sushi" },
  { "name": 33, "dinner": "hummus" }
];

var val = 33;
$("#t").append(get_index_of_array_based_on_value(peoples, val));

function get_index_of_array_based_on_value(array, val) {
    $.each(array, function (index, obj) {
        $.each(obj, function (attr, value) {
            console.log(" attr: " + attr + " == " + value + " (" + val + ") {{" + index + "}} ");
            if (value == val) {
                return index;
            }
        });
    });
}

上述方法不起作用

下面的脚本确实有效


下面的脚本与函数外的脚本完全相同。当您将内容放入函数时,它会突然拒绝根据值查找索引。

您无法从
$返回值。每次调用。如果您在回调中,则返回的
不会影响主函数

当您在
$内使用
return
时,每个
回调类似于
for
/
循环中的
break
/
continue
。虚假值将打破循环,而真实值类似于调用
continue

您需要从主函数中返回,
get\u index\u of\u array\u based\u on\u value
,而不是从
$返回。每个

function get_index_of_array_based_on_value(array, val) {
    var returnVal = null;

    $.each(array, function (index, obj) {
        $.each(obj, function (attr, value) {
            console.log(" attr: " + attr + " == " + value + " (" + val + ") {{" + index + "}} ");
            if (value == val) {
                returnVal = index;
                return false; // break;
            }
        });

        if(returnVal !== null){
            return false;  // break the outer loop
        }
    });

    return returnVal;
}

不能从
$返回值。每次调用。如果您在回调中,则返回的
不会影响主函数

当您在
$内使用
return
时,每个
回调类似于
for
/
循环中的
break
/
continue
。虚假值将打破循环,而真实值类似于调用
continue

您需要从主函数中返回,
get\u index\u of\u array\u based\u on\u value
,而不是从
$返回。每个

function get_index_of_array_based_on_value(array, val) {
    var returnVal = null;

    $.each(array, function (index, obj) {
        $.each(obj, function (attr, value) {
            console.log(" attr: " + attr + " == " + value + " (" + val + ") {{" + index + "}} ");
            if (value == val) {
                returnVal = index;
                return false; // break;
            }
        });

        if(returnVal !== null){
            return false;  // break the outer loop
        }
    });

    return returnVal;
}
你的这个

var peoples = [
  { "name": 44, "dinner": "pizza" },
  { "name": 65, "dinner": "sushi" },
  { "name": 33, "dinner": "hummus" }
];

var val = 33;

$("#t").append(get_index_of_array_based_on_value(peoples, val));

function get_index_of_array_based_on_value(array, val) {
  for(var index = 0; index < array.length; index++){
    for(var attr in array[index]) {
        var value = array[index][attr];
        console.log(" attr: " + attr + " == " + value + " (" + val + ") {{" + index     + "}} ");
         if (value == val) {
            return index;
        }
    }
  }
}
var=[
{“姓名”:44,“晚餐”:“比萨饼”},
{“姓名”:65,“晚餐”:“寿司”},
{“姓名”:33,“晚餐”:“鹰嘴豆泥”}
];
var=33;
$(“#t”).append(根据_值(people,val)获取_数组的_索引_);
函数根据值(数组,val)获取数组的索引{
对于(var index=0;index

var peoples = [
  { "name": 44, "dinner": "pizza" },
  { "name": 65, "dinner": "sushi" },
  { "name": 33, "dinner": "hummus" }
];

var val = 33;

$("#t").append(get_index_of_array_based_on_value(peoples, val));

function get_index_of_array_based_on_value(array, val) {
  for(var index = 0; index < array.length; index++){
    for(var attr in array[index]) {
        var value = array[index][attr];
        console.log(" attr: " + attr + " == " + value + " (" + val + ") {{" + index     + "}} ");
         if (value == val) {
            return index;
        }
    }
  }
}
var=[
{“姓名”:44,“晚餐”:“比萨饼”},
{“姓名”:65,“晚餐”:“寿司”},
{“姓名”:33,“晚餐”:“鹰嘴豆泥”}
];
var=33;
$(“#t”).append(根据_值(people,val)获取_数组的_索引_);
函数根据值(数组,val)获取数组的索引{
对于(var index=0;index
火箭回答得很好-你刚刚击败了我。在回答问题时,我就像一个忍者。特别是当我在代码中处理了这样的问题时。谢谢你们,你们真的很聪明。两个熟练的开发人员没有注意到这个问题,可能需要考虑一下。我猜是因为在其他语言中,return就是return,通常函数中没有函数,除非它的Python.JavaScript(和jQuery)喜欢回调函数:-DNicely-responsed-Rocket-你刚刚打败了我。在回答问题时,我就像一个忍者。特别是当我在代码中处理了这样的问题时。谢谢你们,你们真的很聪明。两个熟练的开发人员没有注意到这个问题,可能需要考虑一下。我猜是因为在其他语言中,return就是return,除非它的Python.JavaScript(和jQuery)喜欢回调函数:-D,否则函数中通常没有函数