columnNamesのキーと値のペアを含むオブジェクトの配列があります。
特定のcolumnNameが存在するかどうかを確認すると、常に-1が返されます。
これがサンプルhttp://jsfiddle.net/trLkt/6/です、ヘルプは適用されます
columnNamesのキーと値のペアを含むオブジェクトの配列があります。
特定のcolumnNameが存在するかどうかを確認すると、常に-1が返されます。
これがサンプルhttp://jsfiddle.net/trLkt/6/です、ヘルプは適用されます
配列で文字列値を検索していますが、その中にオブジェクトcolumnModel
を格納しています()。各配列要素のプロパティと比較することを単独で決定することはできません。検索している値を各配列要素と比較するだけです。columnModel.push({'colName': $(this).text()});
$.inArray()
colName
あなたができる2つのこと:
(@lanzzによって提案されているように)を使用strings
する代わりに配列に追加すると、期待どおりに機能します。objects
.push
$.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');
}
});
});
});