js code:
$.each(data, function (key, value) {
if(key == 'REGEXP' || there is only one object in data){
$changableValidationType.append('<option selected="selected" value="'+key+'">'+value+'</option>');
}
else
$changableValidationType.append('<option value="'+key+'">'+value+'</option>');
});
如果数据中只有一个对象或其REGEXP,那么我想让它被选中=&#34;选择&#34;,
答案 0 :(得分:0)
试试这个:
if(key == 'REGEXP' || (typeof data =="object" && data.length == 1) || typeof data == "undefined"){
如果需要定义数据,你可以进行最后一次检查,如果没有定义数据,我不确定如何进入。
答案 1 :(得分:0)
我假设您要检查data
$.each(data, function (key, value) {
if(key == 'REGEXP' || (typeof(value)== object && value.length == 1)){
$changableValidationType.append('<option selected="selected" value="'+key+'">'+value+'</option>');
}
else
$changableValidationType.append('<option value="'+key+'">'+value+'</option>');
});
答案 2 :(得分:0)
我认为你必须使用这样的东西。 jsFiddle
var size = assocArrayLength(data);
if (data['REGEXP'] || size === 1) {
var key = Object.keys(data)[0];
var value = data[key];
console.log(key + ":" + value);
$changableValidationType.append('<option selected="selected" value="' + key + '">' + value + '</option>');
} else {
console.log(size);
for(var key in data){
$changableValidationType.append('<option value="' + key + '">' + data[key] + '</option>');
}
}
function assocArrayLength(arr){
var size = 0, key;
for (key in arr) {
if (arr.hasOwnProperty(key)) size++;
}
return size;
};
因为关联数组在JavaScript中的行为与普通数组不同。有关详细信息,您可以在这些数组中阅读有关大小的更详细答案 here