我有一个对象数组,其中包含 columnNames 的键值对。
当我检查特定的 columnName 是否存在时,它总是返回 -1
这是一个示例http://jsfiddle.net/trLkt/6/,将提供帮助
我有一个对象数组,其中包含 columnNames 的键值对。
当我检查特定的 columnName 是否存在时,它总是返回 -1
这是一个示例http://jsfiddle.net/trLkt/6/,将提供帮助
您在数组中搜索字符串值,但在其中存储对象( )。无法自行决定与每个数组元素的属性进行比较,它只是将您正在搜索的值与每个数组元素进行比较。columnModel
columnModel.push({'colName': $(this).text()});
$.inArray()
colName
你可以做两件事:
添加strings
到数组而不是objects
使用.push
(如@lanzz 建议的那样),然后$.inArray
将按预期工作。
或者,如果您确实需要在数组中存储对象(例如,如果您需要在每个对象中具有多个属性),则需要遍历每个对象并查看是否colName
已经存在:
var colExists = false;
var text = $(this).text();
$.each(columnModel, function(k, v) {
if(text == v['colName']) {
colExists = true;
}
});
然后将您的支票从 更改if(colExists === -1)
为if(!colExists)
。
例子
$(function () {
$('#ddlMain').change(function (event) {
$('option:selected', $(this)).each(function () {
var colExists = false;
var text = $(this).text();
$.each(columnModel, function(k, v) {
if(text == v['colName']) {
colExists = true;
}
});
if(!colExists) {
columnModel.push({'colName': $(this).text()});
alert($(this).text() + ' added to columnModel');
}
});
});
});