javascript-检查数组中对象的值是否不存在

javascript-检查数组中对象的值是否不存在,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我有一个包含对象和值的简单数组,但并非所有对象都有相同的值: var array = [ {name: '‏aaa', mobile: '111-111'}, {name: '‏bbb', mobile: '222-222', adress: '333-333'}, {name: '‏ccc', mobile: '444-444', adress: '555-555'} ] 第一个对象没有地址 因此,当我试图将其附加到html时,我得到了undefinedword: j

我有一个包含对象和值的简单数组,但并非所有对象都有相同的值:

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
word:

jQuery:

$('ul').append(
    '<li>‏'+array[i].name+'</li>'+
    '<li>‏'+array[i].mobile+'</li>'+
    '<li>‏'+array[i].adress+'</li>'+
)}
<li>‏‏aaa</li>
<li>‏111-111</li>
<li>‏undefined</li>

<li>‏‏bbb</li>
<li>‏222-222</li>
<li>‏333-333</li>
$('ul')。追加(
“
  • ‏'+数组[i].name+'
  • '+ “
  • ‏'+数组[i]。移动+“
  • ”+ “
  • ‏'+数组[i].地址+'
  • '+ )}
    HTML:

    $('ul').append(
        '<li>‏'+array[i].name+'</li>'+
        '<li>‏'+array[i].mobile+'</li>'+
        '<li>‏'+array[i].adress+'</li>'+
    )}
    
    <li>‏‏aaa</li>
    <li>‏111-111</li>
    <li>‏undefined</li>
    
    <li>‏‏bbb</li>
    <li>‏222-222</li>
    <li>‏333-333</li>
    
  • ‏‏aaa
  • ‏111-111
  • ‏未定义
  • ‏‏bbb
  • ‏222-222
  • ‏333-333
  • 如何检查此值是否不存在,然后不显示任何内容而不是
    undefined
    word?,或者甚至不显示整个
    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].address
    是否为
    typeof
    未定义

    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 />'
        );
    }
    
    函数详细信息(){
    if(数组[i]的类型。地址==“未定义”){
    数组[i]。地址=“”;
    }
    $('ul')。追加(
    “
  • ‏'+数组[i].name+'
  • '+ “
  • ‏'+数组[i]。移动+“
  • ”+ “
  • ‏'+数组[i].地址+'
  • '+ “
    ” ); }

    Fiddle更新:

    您仍然需要使用
    ''
    值设置它的地址

    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].address
    是否为
    typeof
    未定义

    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 />'
        );
    }
    
    函数详细信息(){
    if(数组[i]的类型。地址==“未定义”){
    数组[i]。地址=“”;
    }
    $('ul')。追加(
    “
  • ‏'+数组[i].name+'
  • '+ “
  • ‏'+数组[i]。移动+“
  • ”+ “
  • ‏'+数组[i].地址+'
  • '+ “
    ” ); }
    小提琴更新:

    检查这个

     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 />'
    );
    
    if(数组[i].address==null)
    {
    数组[i]['address']='None';
    }
    $('ul')。追加(
    “
  • ‏'+数组[i].name+'
  • '+ “
  • ‏'+数组[i]。移动+“
  • ”+ “
  • ‏'+数组[i].地址+'
  • '+ “
    ” );
    检查这个

     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 />'
    );
    
    if(数组[i].address==null)
    {
    数组[i]['address']='None';
    }
    $('ul')。追加(
    “
  • ‏'+数组[i].name+'
  • '+ “
  • ‏'+数组[i]。移动+“
  • ”+ “
  • ‏'+数组[i].地址+'
  • '+ “
    ” );
    JavaScript有一个固有的布尔值,通常称为truthy或falsy。在if语句中,未赋值的值将返回false
    if(数组[i].address){
    我在代码中添加了一个简短的if语句来解决这个问题

    function details () {
    $('ul').append(
        '<li>‏'+array[i].name+'</li>'+
        '<li>‏'+array[i].mobile+'</li>'+
        (array[i].adress? '<li>‏'+ array[i].adress +'</li>': '')
    );
    }
    
    函数详细信息(){
    $('ul')。追加(
    “
  • ‏'+数组[i].name+'
  • '+ “
  • ‏'+数组[i]。移动+“
  • ”+ (数组[i].地址?'
  • ‏'+ 数组[i].地址+'
  • ':'') ); }
    JavaScript有一个固有的布尔值,通常称为truthy或falsy。未赋值的值将在if语句中返回false
    if(数组[i].address){
    我在代码中添加了一个简短的if语句来解决这个问题

    function details () {
    $('ul').append(
        '<li>‏'+array[i].name+'</li>'+
        '<li>‏'+array[i].mobile+'</li>'+
        (array[i].adress? '<li>‏'+ array[i].adress +'</li>': '')
    );
    }
    
    函数详细信息(){
    $('ul')。追加(
    “
  • ‏'+数组[i].name+'
  • '+ “
  • ‏'+数组[i]。移动+“
  • ”+ (数组[i].地址?'
  • ‏'+ 数组[i].地址+'
  • ':'') ); }
    您可以使用以下内容:

    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 />'
        );
    }
    
    函数详细信息(){
    $('ul')。追加(
    “
  • ‏'+数组[i].name+'
  • '+ “
  • ‏'+数组[i].mobile+'
  • '+ (typeof(数组[i].address)==“未定义”?“”: (“
  • ‏'+数组[i].地址+'
  • '))+ “
    ” ); }
    我使用了三元
    if
    ,条件是检查
    address
    属性是否已定义。如果未定义,则省略整个

  • 您可以使用以下内容:

    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 />'
        );
    }
    
    函数详细信息(){
    $('ul')。追加(
    “
  • ‏'+数组[i].name+'
  • '+ “
  • ‏'+数组[i].mobile+'
  • '+ (typeof(数组[i].address)==“未定义”?“”: (“
  • ‏'+数组[i].地址+'
  • '))+ “
    ” ); }
    我使用了三元
    if
    ,条件是检查
    address
    属性是否已定义。如果未定义,则省略整个

  • 您要找的是:

    • hasOwnProperty
    方法返回一个布尔值,指示 对象具有指定的属性

    希望这符合您的需要
    :)

    代码


    array[i].hasOwnProperty('address')
    您要查找的内容是:

    • hasOwnProperty
    方法返回一个布尔值,指示 对象具有指定的属性

    希望这符合您的需要
    :)

    代码

    array[i].hasOwnProperty('address')
    试试看

    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")
        });
    });
    
    var数组=[
    {名称:'‏aaa',手机:'111-111'},
    {名称:'‏bbb',手机:'222-222',地址:'333-333'},
    {名称:'‏ccc',手机:'444-444',地址:'555-555'}
    ];
    $.each(数组、函数(索引、值){
    $.each(值、函数(键、值){
    $(“
  • ”{ “文本”:val }).附录(“ul”) }); });
  • jshiddle

    试试看

    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")
        });
    });
    
    var数组=[
    {名称:'‏aaa',手机:'111-111'},
    {名称:'‏bbb',手机:'222-222',地址:'333-333'},
    {名称:'‏ccc',手机:'444-444',地址:'555-555'}
    ];
    $.each(数组、函数(索引、值){
    $.each(值、函数(键、值){
    $(“
  • ”{ “文本”:val }).附录(“ul”) }); });

  • jsIDLE

    我有数百个元素,每个元素大约有15个值,所以我不能手动更改它们。我有数百个元素,每个元素大约有15个值,所以我不能手动更改它们。这样一来,没有地址值的元素的所有值都会消失,这不是我想要的