【问题标题】:string array output with numbers带数字的字符串数组输出
【发布时间】:2013-10-23 14:24:14
【问题描述】:

我对 javascript 没有任何经验,并且我有一个关于数组的基本问题。我好像在网上找不到。

我正在使用这样的基本数组:

var names = new Array('Jorn', 'Janine', 'Peter', 'Magchiel', 'Marieke', 'Pieter');

输出需要是这样的:

[0] = Jorn, [1] = Janine, [2] = Peter, ...

等等。我真的在为此苦苦挣扎。

我希望有人可以帮助我。

提前致谢!

【问题讨论】:

  • 你需要输出什么,这是个问题。

标签: javascript arrays output


【解决方案1】:

这基本上是通过for-loop 构建一个用于输出的字符串,然后告诉窗口输出原始字符串。

var output="";
for(var i=0;i<names.length;i++){
output+="[" + i + "]" + " = " + names[i] + ", ";
}
output=output.slice(0,-2);
document.write(output);

【讨论】:

  • 使用 str.slice(0,-1); 删除最后一个字符,not substring with negative values,但我认为你想要最后 2 个字符(不仅仅是 1 个)。附带说明一下,我确实使用子字符串来删除第一个字符,例如 str.substring(1);
  • 实际上,我的错误,你没有使用负值,但无论如何,新方法更短并且适用于 IE6+
  • 我通常使用切片,不知道为什么我最初使用子字符串:S
【解决方案2】:

这应该可行,迭代“foreach-like”键并获取它们的值:

var names = new Array('Jorn', 'Janine', 'Peter', 'Magchiel', 'Marieke', 'Pieter');
var result = '';
for(var i in names){
    result += '[' + i + '] = ' + names[i] + ', ';
}
alert(result);

【讨论】:

  • 非常感谢!这行得通,我知道这是一个带有 foreach 的东西,但我不知道如何使用它。
  • 实际上这是一个糟糕的解决方案。将for .. in 与数组一起使用是错误的。使用正确的 for 循环,就像 ElliotM 的回答一样。
  • 只有重写数组原型是个坏主意,即使那样你也可以使用names.hasOwnProperty(i) 之类的东西来确保它是一个实际的数组元素。还是你想到了别的?
猜你喜欢
  • 2017-02-09
  • 2011-07-08
  • 2015-12-20
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 2021-11-28
  • 2012-08-06
  • 1970-01-01
相关资源
最近更新 更多