JavaScript检查数组对象是否存在或未定义

时间:2015-07-09 10:07:52

标签: javascript jquery

如果不存在,如何将推送新对象添加到数组中?

我查看此链接:How to check if array element exists or not in javascript?

但不确定如何推送新对象!

http://jsfiddle.net/zerolfc/o66uhd05/1/

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

5 个答案:

答案 0 :(得分:2)

元素的类型为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个对象是不可变对象。

答案 1 :(得分:2)

var element = [];定义数组而不是对象。要将新值推送到数组,您需要使用push方法:

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

但我认为你不需要在这里创建一个数组,只需要创建一个对象。声明您的对象,如var element = {};

这样,行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');
}

答案 2 :(得分:1)

尝试预先插入一个空数组;

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

答案 3 :(得分:1)

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/

答案 4 :(得分:0)

你可以这样试试。

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