簡體   English   中英

JavaScript 檢查數組對象是否存在或未定義

[英]JavaScript check if array object exists or undefined

如果新對象不存在,如何將其添加到數組中?

我檢查這個鏈接: 如何檢查數組元素是否存在於javascript中?

但不確定如何推送新對象!

 var element = []; element['obj'] = 'one'; if (typeof element['obj']['bg'] === 'undefined') { console.log('not defined'); element['obj']['bg'] = 'red'; console.log(element); } else { console.log('defined'); }

元素的類型是string ,而不是對象或數組。

將特定變量更改為數組:

var element = {};
element['obj'] = ['one'];
if ( typeof element['obj']['bg'] === 'undefined' ) {
    console.log('not defined');
    element['obj']['bg'] = 'red';
    console.log(element);
} else {
    console.log('defined');
}

或者更好的對象:

element['obj'] = {};
element['obj']['id'] = 'one';

string對象是不可變對象。

var element = []; 定義一個數組而不是一個對象。 要將新值推送到數組中,您需要使用push方法:

element.push({'obj' : 'one'});

但我認為你不需要在這里創建一個數組,而只需創建一個對象。 var element = {};一樣聲明你的對象

像這樣 line element['obj'] = 'one'; 有效,您有一個鍵為obj且值為one

當您編寫element['obj']['bg']您嘗試訪問對象內的對象。 因此,在將值設置為red之前,您需要創建對象:

element['obj'] = {};
element['obj']['bg'] = 'red';

完整示例:

 var element = {}; element['obj'] = {}; if (typeof element['obj']['bg'] === 'undefined') { console.log('not defined'); element['obj']['bg'] = 'red'; console.log(element); } else { console.log('defined'); }

嘗試預先插入一個空數組;

var element = [];

element['obj'] = 'one';

if ( typeof element['obj']['bg'] === 'undefined' ) {

    console.log('not defined');

    element['obj'] = [element['obj']];

    element['obj']['bg'] = 'red';

    console.log( element);

} else {
    console.log('defined');
}
var element = [];

element['obj'] = 'one';

if ( typeof element['obj']['bg'] === 'undefined' ) {

    console.log('not defined');

    element['obj'] = {'bg':'red'};

    console.log("My value:"+element['obj']['bg'] );

} else {
    console.log('defined');
}

http://jsfiddle.net/o66uhd05/3/

你可以試試這個方法。

var element = [],item = [];

item['obj'] = 'one';
element.push(item);

if ( typeof element['obj']['bg'] === 'undefined' ) {

    console.log('not defined');

    item['bg']='red';

    element.push(item);

    console.log( element);

} else {
    console.log('defined');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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