我有一个字符串列表。 我需要将它们放入数组A1中。 然后我需要为A1中的一些元素创建另一个数组A2。 A2的值是A1的元素。 这有点像将A1中的字符串分组为A2,但我需要访问A1和A2。 使用javascript / jquery执行此操作的最佳方法是什么? 我想如果我将它们放入常量中,如果元素值发生变化,我就不必重复它们。
e.g。
A1 = "a", "cat", "hat","b", "bob", "ben", "c", "clay", "course", "d", "e", "done"
A2["a"] = "cat", "hat"
A2["b"] = "bob", "ben"
A2["c"] = "clay", "course"
如果“cat”变成“cot”,我不想在多个地方改变它...... 什么是最不凌乱的方法,并使这些数组可用于其他js文件?
答案 0 :(得分:4)
然后只需创建名为constants.js
的.js文件,其中包含以下内容:
var A1 = ["a", "cat", "hat","b", "bob", "ben", "c", "clay", "course", "d", "e", "done"];
var A2["a"] = ["cat", "hat"];
var A2["b"] = ["bob", "ben"];
var A2["c"] = ["clay", "course"];
在任何其他脚本(.js文件)之前在您的页面的HTML中引用它:
<script type="text/javascript" src="constants.js"><script/>
这样,您的所有脚本都可以访问constants.js
中的变量,只要您想更改这些变量,就可以修改constants.js
。
答案 1 :(得分:1)
要回答你的第一个问题,这种让我想起了enumerated types。我处理你的常数的方式就是这样......
var constants = {
a : "a",
cat : "cat",
hat : "hat",
bob : "bob",
clay : "clay"
};
...您可以按照constants.bob
,constants.clay
等方式访问这些内容,然后按照传统方式将JavaScript文件包含在您的网页中:
<script type="text/javascript" src="path-to-js-file/constants.js"></script>
就你的第二个问题而言,这让我想起了哈希表。我会考虑这个问题然后再回过头来。
我希望这会有所帮助。
答案 2 :(得分:0)
要从另一个文件访问常量,一个方便的jQuery方法是'getScript'。使用与从html / jsp / etc文件访问文件时相同的相对路径(即路径不是相对于放置getScript方法的位置,而是相对于域路径)。例如,对于localhost:8080 / myDomain:
的app$(document).ready(function() {
$.getScript('/myDomain/myScriptsDir/constants.js');
...
然后,如果你在一个名为constants.js的文件中有这个:
var jsEnum = { //not really an enum, just an object that serves a similar purpose
FOO : "foofoo",
BAR : "barbar",
}
现在可以用
打印'foofoo'jsEnum.FOO
答案 3 :(得分:0)
我们可以像下面一样创建一个常量。它的工作方式类似于静态类
function Helper() { }
Helper.LocationType = {
Division: "Division",
Region: "Region",
Unit: "Unit",
HeadOffice: "HeadOffice",
HO: "HO"
};
我们现在只能输入Helper.LocationType.Division
返回分部,Helper.LocationType.Region
返回区域