JavaScript 动态数组与对象和数组
JavaScript dynamic array with object and array
我在JavaScript中创建带有对象的列表时遇到问题:对象将包含一个整数值和一个数组。
结构将如下所示(此代码有效):
var list = [ {
id : 1234,
dependencyList : [ {
id : 2142
}, {
id : 5313
} ]
}, {
id : 4312,
dependencyList : [ {
id : 2142
}, {
id : 5313
} ]
} ];
问题是我想动态创建这个列表,换句话说,像这样:
var list = [];
var object;
object.id=1234;
object.dependencyList = [];
object.dependencyList.push(2222);
list.push(object);
当我尝试alert(list[0].length)
时,此代码不起作用,它返回 0,并且在使用 JSON.stringify(list) 后它只返回 [[]]
.
有人知道解决方案吗?
list[0]
是一个对象而不是数组,这就是为什么你看不到任何关于length
的内容。尝试:
console.log(Object.keys(list[0]).length);
或者,您甚至可以console.log(list[0])
并检查控制台以确保它包含某些内容。
另外,我假设你的意思是:
var object = {};
因为否则object
undefined
,您的脚本将无法正常工作。您必须更改的另一件事是:
object.dependencyList.push(2222);
自:
object.dependencyList.push({id: 2222});
对象未
定义。做:
var object = {};
你应该做list[0].dependencyList.length)
你也应该改变: object.dependencyList.push(2222);
为 object.dependencyList.push({id: 2222});
对象是你的朋友。
如果你需要创建很多这样的东西,你可能应该定义它们在函数中的形状。 这样做的一个优点是,您可以创建一个资源库来添加依赖项,该依赖项将实现隐藏为对特定成员变量的推送。
像这样:
function createObject( id ) {
var object = {};
object.id = id;
return object;
}
function createObjectWithDependencies( id ) {
var object = createObject( id );
object.dependencyList = [];
object.addDependency = function( dependentObject ) {
object.dependencyList.push( dependentObject );
}
return object;
}
var list = [];
var object = createObjectWithDependencies( 1234 );
object.addDependency( createObject( 2142 ) );
object.addDependency( createObject( 5313 ) );
list.push( object );
var object = createObjectWithDependencies( 4312 );
object.addDependency( createObject( 2142 ) );
object.addDependency( createObject( 5313 ) );
list.push( object );
console.log( list );
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象