【发布时间】:2013-11-15 18:47:20
【问题描述】:
我编写此代码示例是为了了解在“名称”中具有特定值的元素的索引位置。我的变量数据包含这些元素的列表。
var data = {"Attributes":[
{"Name":"bedrooms","Value":"4"},
{"Name":"bathrooms","Value":"2"},
{"Name":"property_type","Value":"House"},
{"Name":"rateable_value","Value":"$780,000"},
{"Name":"price","Value":"Price by negotiation"},
{"Name":"location","Value":"13"},
{"Name":"district","Value":"Queenstown-Lakes"},
{"Name":"suburb","Value":"Lower Shotover"},
{"Name":"region","Value":"Otago"},
{"Name":"floor_area","Value":"254m²"},
{"Name":"land_area","Value":"1690m²"},
{"Name":"property_id","Value":"CBM959"},
{"Name":"in_the_area","Value":"playground"},
{"Name":"parking","Value":"Large double garage"}
]}
find_index = function(list, str){
list.each(function(index, value){
console.log("Comparing "+value.Name+" with "+str);
if(value.Name == str){
return index;
}
});
};
console.log(find_index($(data.Attributes), "bedrooms"))
当我执行此代码时,它会在日志中打印所有比较,然后返回“未定义”。我期望的是在比较成功时停止迭代,并返回 0,这是名称为“卧室”的元素的位置。
这里发生了什么?我该如何解决?
【问题讨论】:
-
您的
return语句从内部匿名函数返回,而不是find_index函数。
标签: javascript jquery arrays string comparison