仅使用javascript逐个打印关联数组元素
我有这个密码仅使用javascript逐个打印关联数组元素,javascript,associative-array,Javascript,Associative Array,我有这个密码 <script type="text/javascript"> var slideStart = 1; var slideCount = 4; function callArr() { var arrName = {"rose":"5", "daisy":"4", "orchid":"3", "sunFlower":"10", "Lily":"15"}; for (var flw
<script type="text/javascript">
var slideStart = 1;
var slideCount = 4;
function callArr() {
var arrName = {"rose":"5", "daisy":"4",
"orchid":"3", "sunFlower":"10",
"Lily":"15"};
for (var flwr in arrName) {
if (slideStart <= slideCount) {
document.getElementById('test').innerHTML += flwr +
" >>>>>>>> " +
arrName[flwr] +
"<br />";
slideStart++;
break;
}
}
}
</script>
我想在任何事件中单独访问数组元素。有谁能帮我解决这个问题吗???它只打印一次,因为你在循环中设置了一个中断。此代码将毫无问题地打印所有元素。slideStart和slideCount变量也会导致一个问题。如果要打印所有元素,请将slideStart更改为0,这样它将打印所有元素,而不仅仅是其中的4个。希望这对您有所帮助:
function callArr() {
var arrName = {"rose":"5", "daisy":"4",
"orchid":"3", "sunFlower":"10",
"Lily":"15"};
for (var flwr in arrName) {
if (slideStart <= slideCount) {
document.getElementById('test').innerHTML += flwr +
" >>>>>>>> " +
arrName[flwr] +
"<br />";
slideStart++;
//break;
}
}
}
它只打印一次,因为您在循环中设置了一个中断。此代码将毫无问题地打印所有元素。slideStart和slideCount变量也会导致一个问题。如果要打印所有元素,请将slideStart更改为0,这样它将打印所有元素,而不仅仅是其中的4个。希望这对您有所帮助:
function callArr() {
var arrName = {"rose":"5", "daisy":"4",
"orchid":"3", "sunFlower":"10",
"Lily":"15"};
for (var flwr in arrName) {
if (slideStart <= slideCount) {
document.getElementById('test').innerHTML += flwr +
" >>>>>>>> " +
arrName[flwr] +
"<br />";
slideStart++;
//break;
}
}
}
如果引用access AnyWare,则可以将其声明为Globala变量:
<script type="text/javascript">
var slideStart = 1;
var slideCount = 4;
var arrName = {"rose":"5", "daisy":"4",
"orchid":"3", "sunFlower":"10",
"Lily":"15"}; //Declare var outside, so it's global
function callArr() {
for (var flwr in arrName) {
if (slideStart <= slideCount) {
document.getElementById('test').innerHTML += flwr +
" >>>>>>>> " +
arrName[flwr] +
"<br />";
slideStart++;
//break; //This prevents from showing more. Erase it
}
}
}
</script>
还要注意,break语句导致只显示第一个元素
希望这有帮助。干杯如果您引用access AnyWare,您可以将其声明为Globala var:
<script type="text/javascript">
var slideStart = 1;
var slideCount = 4;
var arrName = {"rose":"5", "daisy":"4",
"orchid":"3", "sunFlower":"10",
"Lily":"15"}; //Declare var outside, so it's global
function callArr() {
for (var flwr in arrName) {
if (slideStart <= slideCount) {
document.getElementById('test').innerHTML += flwr +
" >>>>>>>> " +
arrName[flwr] +
"<br />";
slideStart++;
//break; //This prevents from showing more. Erase it
}
}
}
</script>
还要注意,break语句导致只显示第一个元素
希望这有帮助。干杯这并不完全兼容跨浏览器,但您可以使用Object.keysarrName。或者,如果您确实关心跨浏览器兼容性,则可以创建并存储一个行为相同的数组。这并不完全是跨浏览器兼容的,但您可以使用Object.KeyArrName。或者,如果您真的关心跨浏览器兼容性,那么实际上创建并存储一个行为相同的数组。当然,它将只打印第一个元素,因为您使用了这样的条件
if (slideStart <= slideCount)
修改代码以遍历对象属性。可能的解决方案之一:
var slideStart = 0;
var slideCount = 4;
function callArr() {
var arrName = {"rose":"5", "daisy":"4",
"orchid":"3", "sunFlower":"10",
"Lily":"15"};
var i = 0;
for (var flwr in arrName) {
if (i == slideStart) {
document.getElementById('test').innerHTML += flwr +
" " +
arrName[flwr] +
"<br />";
slideStart++;
break;
}
i++;
}
}
请在此处尝试:
正如您所看到的,它在每次调用后都会打印下一个属性。当然,它只会打印第一个元素,因为您使用了这样的条件
if (slideStart <= slideCount)
修改代码以遍历对象属性。可能的解决方案之一:
var slideStart = 0;
var slideCount = 4;
function callArr() {
var arrName = {"rose":"5", "daisy":"4",
"orchid":"3", "sunFlower":"10",
"Lily":"15"};
var i = 0;
for (var flwr in arrName) {
if (i == slideStart) {
document.getElementById('test').innerHTML += flwr +
" " +
arrName[flwr] +
"<br />";
slideStart++;
break;
}
i++;
}
}
请在此处尝试:
如您所见,它会在每次调用后打印下一个属性。可能这就是您想要的。请在此处尝试:
也许这就是你想要的。请在此处尝试:
您有打印数组的代码。现在,你想知道什么?你在任何事件上的确切意思是什么?仅供参考,javascript没有关联数组。你在那里使用的实际上是一个对象。将它们视为关联数组可能会产生意想不到的后果。此代码仅打印第一个元素。。。当我点击一个链接时,我希望所有元素都一一打印。。可能吗?也许你应该从代码中删除if?特别是,不要在HTML中使用>,除非你想使用标记。你有打印数组的代码。现在,你想知道什么?你在任何事件上的确切意思是什么?仅供参考,javascript没有关联数组。你在那里使用的实际上是一个对象。将它们视为关联数组可能会产生意想不到的后果。此代码仅打印第一个元素。。。当我点击一个链接时,我希望所有元素都一一打印。。可能吗?也许你应该从代码中删除if?特别是,不要在HTML中使用>,除非你想使用标签。谢谢你的回复。。。。它现在一次打印所有值。。。我希望当我点击一个链接时,第一个元素被打印出来。然后在第二次点击,第二个元素等等…谢谢你的回复。。。。它现在一次打印所有值。。。我希望当我点击一个链接时,第一个元素被打印出来。然后第二次点击,第二个元素,依此类推。。。。