【问题标题】:Make Javascript function argument part of variable使 Javascript 函数参数成为变量的一部分
【发布时间】:2013-01-13 19:08:15
【问题描述】:

我想将函数的参数与变量合并 但我不知道该怎么做。

firstDates = [];

function myFunction(partOne) {
    partOne + Dates.push(someOtherVar); 
}

myFunction(first);

我知道这行不通,但正确的方法是什么?

【问题讨论】:

  • 对于初学者,决定你的变量名应该是什么,并坚持下去。
  • 第一行与其余代码有什么关系?我很困惑...
  • 我想在我的函数中将变量与参数合并
  • 什么是firstsomeOtherVar 是什么?将变量与参数“合并”是什么意思?这与推入数组有什么关系?

标签: javascript variables arguments


【解决方案1】:

为什么不这样呢?

var dates = {};

function myFunction(partOne) {
   dates[partOne] = [];               // dates["first"] = []
   dates[partOne].push(someOtherVar); // dates["first"].push(someOtherVar)
}

myFunction("first");

否则,您要完成的是 eval 类型的设置。这通常是一个非常糟糕的主意。不要使用动态命名的变量。

【讨论】:

  • Dates = []; 应该是var dates = {};
  • @thesystem 不,因为在这种情况下你需要Dates.partOne = [];。两种方法都可以,但我确实选择使用数组,因为它更接近 OP 的测试用例。但是,向未来的用户展示基于对象的方法将是有益的。如果你把它写出来作为答案,我会投赞成票。编辑:实际上想一想,这也不起作用,但是基于对象的方法仍然很好。
  • 不,你需要dates[partOne] = [];。数组 (您正在使用) 是一个对象。两者都将以相同的方式访问属性/索引。但是为此使用数组会产生误导。键/值对的无序列表的正确选择是对象。
  • ...然后var 应该始终用于显式声明,并且按照惯例,只有构造函数应该以大写字母开头。
  • @thesystem 我明白了!我当时确实有这个错误。感谢您指出。我会编辑答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多