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个值,所以我不能手动更改它们。这样一来,没有地址值的元素的所有值都会消失,这不是我想要的