javascript对象推送如何设置键值

时间:2014-07-19 17:31:35

标签: javascript object push

使用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;]与推送键具有相同的值。

3 个答案:

答案 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必须是数字,而不是搅拌。