【问题标题】:JavaScript - assignment - array of arraysJavaScript - 赋值 - 数组数组
【发布时间】:2011-12-22 07:26:26
【问题描述】:
var a = new Array();
var b = new Array();
var c = [a,b];

var str = 'hello,world,nice,day';
for(var i = 0; i < c.length; i++){
  c[i] = str.split(',');
}

执行后我想拥有:

c = [a, b];
a = ['hello', 'world', 'nice', 'day'];
b = ['hello', 'world', 'nice', 'day'];

但我真的有:

c = [['hello', 'world', 'nice', 'day'], ['hello', 'world', 'nice', 'day']];
a = [];
b = [];

我可以解决它吗?

更新: Raynos 的决定非常好。谢谢。

【问题讨论】:

  • 我很惊讶你得到 a=null,b=null,a 和 b 不应该是空数组吗?
  • 当我写 a=null, b=null 这意味着它们是空数组。对不起我的错误。

标签: php javascript asp.net .net html


【解决方案1】:
for(var i = 0; i < c.length; i++){
  c[i].push.apply(c[i], str.split(','));
}

【讨论】:

    【解决方案2】:

    split 函数创建一个新数组,存储在c 中。您必须遍历 split 返回的数组并对该值执行 c[i].push()

    或者直接将ab设置为split的结果。

    【讨论】:

      【解决方案3】:

      因为你写了c[i] = str.split(','); - 你应该写c[i] = str.split(',')[i];
      实际上 - 为什么要使用 for 来处理它?

      编辑 - 抱歉,我以为分配给 c[0], c[1]....

      【讨论】:

      • str.split(',')[i]。你确定答案吗?
      • 那根本没有做他想做的事
      • 我确定语法 - 但我已经编辑了我的答案,没有注意到c = [a,b]的第一部分
      猜你喜欢
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 2019-03-14
      • 1970-01-01
      • 2014-07-12
      相关资源
      最近更新 更多