【问题标题】:How to reference an array method within a function in Javascript如何在Javascript中的函数中引用数组方法
【发布时间】:2014-02-08 10:35:21
【问题描述】:
var myList = ["Hello There World", "meatball", "cookie monster"];

var BreakUpFirst = function (myList) {
document.write(myList[0].split(" "));
};

您好,我是 JavaScript 新手,请多多包涵。不知道我在这里做错了什么。

我试图将myList 数组中的第一个字符串分解为具有 3 个值的自己的数组。 split 方法在函数之外对我来说工作得很好,但我不能让它在里面工作。我想将BreakUpFirst 创建为一个新数组并保留myList 或我通过它的任何其他数组。

【问题讨论】:

  • 为什么不只是var BreakUpFirst = myList[0].split(" ");
  • 你没有执行这个函数——你只是在定义一个。之后你需要BreakUpFirst() 来实际运行代码......
  • 之后运行代码时仍然出现错误。我正在尝试学习如何通过函数传递数组,并希望数组成为函数的参数。 JavaScript 错误:未捕获的 TypeError:无法读取第 5 行未定义的属性“0”
  • 那是因为您必须按照定义函数的方式传入数组。如果您想使用您已经定义的全局myList 数组,请将myList 从您的函数定义中取出,使其仅读取var BreakUpFirst = function() { 替代方案,您可以按照我下面的答案中的说明调用您的函数,传入全局变量。

标签: javascript arrays function methods


【解决方案1】:

您实际上在这里做了几件不同的事情。如果您只想将myList[0].split(" ") 的值分配给var BreakUpFirst,那么@thefourtheye 建议的解决方案是理想的。直接赋值即可:

var BreakUpFirst = myList[0].split(" ");

如果您尝试使用的函数总是会分解存储在数组第一个元素中的字符串并将其输出到屏幕,那么您需要确保将数组作为参数传递。如果你定义你的函数:

 var BreakUpFirst = function(myList) {
     return myList[0].split(" ");
 }

 var myList = ["Hello There World", "meatball", "cookie monster"];

您需要确保调用该函数并传入参数

 var brokenString = BreakUpFirst(myList);
 alert(brokenString);

您将收到一个带有 brokenString 数组的警告框,"Hello","There","World"

【讨论】:

  • 这很有意义,但我仍然在警报框中收到undefined。希望在alert(brokenString[1]); 的弹出窗口中获得“那里”,感谢您的帮助!
  • @user3211495:问题在于document.write()的使用。那应该只是回报。我已经编辑了答案,因为这似乎很清楚这就是citizenlave 的意思。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 2011-08-11
相关资源
最近更新 更多