簡體   English   中英

javascript-檢查數組中對象的值是否不存在

[英]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標簽?

JSFiddle演示

您需要將其設置為' '但仍帶有' '值。

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")
    });
});

jsfiddle http://jsfiddle.net/guest271314/mU9T5/

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>

SQL小提琴

您要尋找的是這個: http : //jsfiddle.net/Z7U3r/

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM