Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅使用javascript逐个打印关联数组元素_Javascript_Associative Array - Fatal编程技术网

仅使用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中使用>,除非你想使用标签。谢谢你的回复。。。。它现在一次打印所有值。。。我希望当我点击一个链接时,第一个元素被打印出来。然后在第二次点击,第二个元素等等…谢谢你的回复。。。。它现在一次打印所有值。。。我希望当我点击一个链接时,第一个元素被打印出来。然后第二次点击,第二个元素,依此类推。。。。