使用javascript push方法时有没有办法设置自己的键值?这是我的例子:
<script>
var examples = [];
</script>
<?php foreach($examples as $example):?>
<script type="text/javascript">
var example<?php echo $example['id']?> = {
id : '<?php echo $example['id']?>',
another : '<?php echo $example['another']?>',
};
//here I would like to give key $example[id]
examples.push(example<?php echo $example['id']?>);
</script>
<?php endforeach;?>
<script>
for (index = 0; index < examples.length; ++index) {
somefunction(examples[index]);
}
</script>
由于某些原因,我需要$ example [&#39; id&#39;]与推送键具有相同的值。
答案 0 :(得分:2)
如果你需要匹配的ID,制作一个数组会比你需要它更难。
如果你想通过ID引用它,你可以简单地使用一个vanilla JS对象
<script>
var examples = {};
</script>
<?php foreach($examples as $example):?>
<script type="text/javascript">
var example<?php echo $example['id']?> = {
id : '<?php echo $example['id']?>',
another : '<?php echo $example['another']?>',
};
//here I would like to give key $example[id]
examples['' + <?php echo $example['id']?>] = example;
</script>
<?php endforeach;?>
<script>
for (var k in examples) {
somefunction(examples[k]);
}
</script>
这将允许您设置任意字符串键并像数组一样循环。
答案 1 :(得分:1)
改为使用对象:
var examples = {};
...
examples[key] = value;
答案 2 :(得分:0)
如果你的id是一个字符串值,那么你需要一个映射对象(var obj = {}; obj [key] = value),但你不能将它用作数组,因为它不是一个数组但是,你仍然可以这样做:for(var k in elements){if(elements.hasOwnProperty(k)){do something}}
如果你真的想使用一个数组,你可以尝试使用splice(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)方法将元素插入某个索引(只需确保数组长度总是大于你试图插入的索引值at),但为此你的id必须是数字,而不是搅拌。