Javascript在对象数组中查找整型属性值
这基本上是没有逻辑意义的事情,我不知道为什么会发生这种情况 当您创建一个函数来比较对象数组(本质上是JSON对象)的属性值时,它拒绝查找索引。然而,在功能之外,它似乎工作得非常好 然而,问题是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").
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,否则函数中通常没有函数