【问题标题】:Javascript Dynamic Arrays and ObjectJavascript 动态数组和对象
【发布时间】:2010-11-23 21:09:40
【问题描述】:

这可能吗?

所以我需要一个可以扩展和访问的动态名称和内容的数组。

object = {};
var two = ['thing', 'thing2'];
for(one in two){
    object[two[one]] = [];
}

如果是但不是这样,那怎么办?

【问题讨论】:

  • 嗯?我不确定你在问什么。此外,用for-in 迭代Array 被认为是不好的做法;使用 C 风格的 for 循环或使用 Array.prototype.forEach(如果可用)。
  • 对不起,我真的很难解释:\
  • 请注意,您在此处显示的代码示例声明了一个全局 one 变量,除非您在函数的其他地方有 var one。迭代对象属性的最佳实践是for (var prop in obj){ if (obj.hasOwnProperty(prop)){ ... } }

标签: javascript arrays loops object


【解决方案1】:

这绝对是可行的,只要确保对象拥有该属性并且它不是从原型链中的更高层继承的:

object = {};
var two = ['thing', 'thing2'];

for..in:

for(var one in two){
    if(two.hasOwnProperty(one))
       object[two[one]] = [];
}

for:

for(var i = 0; i < two.length; i++)
   object[two[i]] = [];

【讨论】:

  • 您缺少一个var,导致它被全局定义(并可能发生冲突)。
  • @Phrogz,哎呀。错过了那个。谢谢!
【解决方案2】:
var object = {};
var props  = 'thing thing2'.split(' ');
for (var i=0,len=props.length;i<len;++i){
  object[props[i]] = [];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    相关资源
    最近更新 更多