如何查找引用数组的三个变量的重复项
How to find duplicates of three variables that reference an array?
我有一个函数,它读取一个txt文件,然后从它读取的每行charAt()
值的组合中创建三个变量。变量是k k1和k2。这些变量引用一个很长的数组文件myarray[k][k1][k2]
,然后将这些数组元素的值写入一个div
。
我可能读取多达400行文本,每次创建k, k1和k2值。我该如何确定这些相同的k k1和k2值是否重复?"
更新-我尝试使用
if ( !(myArray[k] && myArray[k][k1] && myArray[k][k1][k2]))
但是它没有工作,可能是因为我没有正确地解释我的问题。
例如,在读取后,例如第15行,我得到k=0, k1=3, k2=10
的值,这些值将用于myArray[k][k1][k2]
这些相同的值,即k=0, k1=3, k2=10
可能不会再次出现,或者它们可能在读取后出现,例如第222行,如果是这种情况,我想写一些不同的东西,即我不想再次输出myArray[0][3][10]
的值。我希望这是有意义的。
我认为最好包含代码:
<script src="AllTransit.js"></script>
<script>
var myplanets =
["SUN ", "MOON ", "MERCURY", "VENUS ", "MARS ", "JUPITER", "SATURN ", "URANUS ", "NEPTUNE", "PLUTO "]
var myplanets1 =
["SUN ", "MOON ", "MERCURY", "VENUS ", "MARS ", "JUPITER", "SATURN ", "URANUS ", "NEPTUNE", "PLUTO ", "MC ", "ASC "]
var myaspects = ["conjunct", "sextile ", "square ", "trine ", "opposite"]
var numval = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
var numval1 = [0, 1, 2, 3, 4]
var numval2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
var r, tplanet, aspect, nplanet, range, k, k1, k2
function loadFile(){
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var filename = "emmy_test1.txt"
var info = document.getElementById("info");
var transits = document.getElementById("transits");
f = fso.OpenTextFile(filename, ForReading);
while (!f.AtEndOfStream){
r = f.ReadLine();
tplanet = r.charAt(2) + r.charAt(3) + r.charAt(4) + r.charAt(5) + r.charAt(6) + r.charAt(7) + r.charAt (8)
for (var j = 0; j < myplanets.length; j++) {
if (tplanet==myplanets[j]) {k = numval[j]}
}
aspect = r.charAt(34) + r.charAt(35) + r.charAt(36) + r.charAt(37) + r.charAt(38) + r.charAt(39) + r.charAt(40) + r.charAt(41)
for (var j = 0; j < myaspects.length; j++) {
if (aspect==myaspects[j]) {k1 = numval1[j]}
}
nplanet = r.charAt(45) + r.charAt(46) + r.charAt(47) + r.charAt(48) + r.charAt(49) + r.charAt(50) + r.charAt(51)
for (var j = 0; j < myplanets1.length; j++) {
if (nplanet==myplanets1[j]) {k2 = numval2[j]}
}
range = r.charAt(66) + r.charAt(67) + r.charAt(68) + r.charAt(69) + r.charAt(70) + r.charAt(71) + r.charAt(72) + r.charAt(73) + r.charAt(74) + r.charAt(75) + r.charAt(76) + r.charAt(77) + r.charAt(78) + r.charAt(79) + r.charAt(80) + r.charAt(81) + r.charAt(82) + r.charAt(83) + r.charAt(84) + r.charAt(85)
transits.innerHTML += "<b>" + range + "</b><br>" + myArray[k][k1][k2] + "<br>"
transits.innerHTML += "<br>"
}
}
</script>
TIA
有一个未定义的变量不能有属性的问题,即
var myArray;
if(myArray[1]) ... // error
myArray = [];
if(myArray[1]) ... // ok
所以这应该可以工作:
var myArray = [];
function add(k,k1,k2) {
if(myArray[k]===undefined) myArray[k] = [];
if(myArray[k][k1]===undefined) myArray[k][k1] = [];
if(myArray[k][k1][k2]===undefined) {
myArray[k][k1][k2] = true; // or anything but undefined
transits.innerHTML+= k+","+k1+","+k2+"<br>";
}
else {
// duplicate
}
}
相关文章:
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 如何使用PHP和JS级联三个下拉列表
- 灯光问题(使用三个.js)
- 在三个.js中创建球体(例如地球)的磁力线
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- javascript第三个XMLHttpRequest被拒绝.但前两个是允许的
- 将循环中的两个文本框相乘,并在第三个文本框上显示结果
- Javascript:如果有三个变量
- Javascript形式,计算三个相关变量
- 将变量传递给第三个参数的 GSAP TimeLineLite.to() 不起作用
- 如何将这三个变量存储到本地存储中
- 使用java脚本比较三个变量
- 如何对三个不同的变量使用相同的函数
- 如何比较两个变量并设置第三个变量的值
- 在javascript中,比较变量时使用两个等号还是三个等号更好
- 如何查找引用数组的三个变量的重复项
- 我能否创建一个矩阵,它将根据三个输入变量设置两个变量的状态
- 交换时更改img(三个变量)
- 变量赋值 - JavaScript 三个赋值
- 将变量从钛的第一个窗口传递到任何其他(第三个、第五个)窗口