[英]javascript- check if value of object in array is not exist
我有一個包含對象和值的簡單數組,但並非所有對象都具有相同的值:
var array = [
{name: 'aaa', mobile: '111-111'},
{name: 'bbb', mobile: '222-222', adress: '333-333'},
{name: 'ccc', mobile: '444-444', adress: '555-555'}
]
第一個對象沒有地址。
因此,當我嘗試將其附加到html時,出現了undefined
單詞:
jQuery的:
$('ul').append(
'<li>'+array[i].name+'</li>'+
'<li>'+array[i].mobile+'</li>'+
'<li>'+array[i].adress+'</li>'+
)}
HTML:
<li>aaa</li>
<li>111-111</li>
<li>undefined</li>
<li>bbb</li>
<li>222-222</li>
<li>333-333</li>
如何檢查該值是否不存在,然后什么也不顯示而不是undefined
單詞?或者甚至不顯示整個li
標簽?
您需要將其設置為' '
但仍帶有' '
值。
var array = [
{name: 'aaa', mobile: '111-111',adress:''},
{name: 'bbb', mobile: '222-222', adress: '333-333'},
{name: 'ccc', mobile: '444-444', adress: '555-555'}
]
編輯 :
解決方案2
檢查array[i].adress
是否為typeof
Undefined
function details () {
if( typeof array[i].adress == "undefined"){
array[i].adress = '';
}
$('ul').append(
'<li>'+array[i].name+'</li>'+
'<li>'+array[i].mobile+'</li>'+
'<li>'+array[i].adress+'</li>'+
'<br />'
);
}
小提琴更新: 工作演示
嘗試
var array = [
{name: 'aaa', mobile: '111-111'},
{name: 'bbb', mobile: '222-222', adress: '333-333'},
{name: 'ccc', mobile: '444-444', adress: '555-555'}
];
$.each(array, function(index, value) {
$.each(value, function(key, val) {
$("<li>", {
"text": val
}).appendTo("ul")
});
});
JavaScript具有一個固有的布爾值,通常稱為“真”或“假”。 未分配的值將在if語句中返回false,即if(array[i].adress){
我在您的代碼中添加了簡寫的if語句來解決此問題。
function details () {
$('ul').append(
'<li>'+array[i].name+'</li>'+
'<li>'+array[i].mobile+'</li>'+
(array[i].adress? '<li>'+ array[i].adress +'</li>': '')
);
}
您可以使用如下形式:
function details () {
$('ul').append(
'<li>'+array[i].name+'</li>'+
'<li>'+array[i].mobile+'</li>'+
(typeof(array[i].adress) === 'undefined' ? '' :
('<li>'+array[i].adress+'</li>')) +
'<br />'
);
}
if
檢查address
屬性是否已定義, if
使用三進制。 如果不是,則省略整個<li>
。
您要尋找的是這個: http : //jsfiddle.net/Z7U3r/
hasOwnProperty
: https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty hasOwnProperty()方法返回一個布爾值,指示對象是否具有指定的屬性。
希望這符合您的需求:)
碼
array[i].hasOwnProperty('adress')
檢查這個
if (array[i].adress==null)
{
array[i]['adress'] = 'None';
}
$('ul').append(
'<li>'+array[i].name+'</li>'+
'<li>'+array[i].mobile+'</li>'+
'<li>'+array[i].adress+'</li>'+
'<br />'
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.