【问题标题】:Can javascript add element to an array without specifiy the key like PHP?javascript 可以在不指定 PHP 等键的情况下将元素添加到数组吗?
【发布时间】:2013-01-11 11:31:24
【问题描述】:

在 PHP 中,我可以像这样向数组添加一个值:

array[]=1;
array[]=2;

输出将是0=>'1', 1=>'2';

如果我在 javascript 中尝试相同的代码,它会返回 Uncaught SyntaxError: Unexpected string 。那么,在 JS 中有什么方法可以像 PHP 一样工作吗?谢谢

【问题讨论】:

  • 您可以使用array.push 将元素推送到数组上而不指定索引
  • 见this
  • 哦,你的意思是如果有一个相当于 PHP 的 javascript array_push ;)

标签: php javascript arrays


【解决方案1】:

只需在 javascript 中使用Array.push

var arr = [1,2,3,4];

// append a single value
arr.push(5);  // arr = [1,2,3,4,5]

// append multiple values
arr.push(1,2) // arr = [1,2,3,4,5,1,2]

// append multiple values as array
Array.prototype.push.apply(arr, [3,4,5]); // arr = [1,2,3,4,5,1,2,3,4,5]

Array.push on MDN

【讨论】:

    【解决方案2】:

    来自w3schools

    <script>
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    
    function myFunction()
    {
    fruits.push("Kiwi")
    var x=document.getElementById("demo");
    x.innerHTML=fruits;
    }
    </script>
    

    【讨论】:

      【解决方案3】:

      以编程方式,您只需“推送”数组中的一个项目:

      var arr = [];
      
      arr.push("a");
      arr.push("b");
      
      arr[0]; // "a";
      arr[1]; // "b"
      

      你不能按照你的建议去做:

      arr[] = 1
      

      是不是有效的 JavaScript。

      【讨论】:

      • PHP 数组函数和速记技巧在 javascript 中绝对毁了我。
      【解决方案4】:

      我想找到一种方法,将值作为数组元素添加到变量或属性中,但这种方法尚不存在。 (很像 php 的 $var[] = 'foo'。)所以我四处打听,这就是我学到的。

      变量:

      var arr;
      (arr = arr || []).push('foo');
      

      属性:

      var obj = {};
      (obj.arr = obj.arr || []).push('foo');
      

      ||如果为真则返回左边,如果左边为假则返回右边。到 .push() 执行时,arr 是一个数组——如果它还没有的话。

      【讨论】:

        【解决方案5】:

        对于特殊情况你可以使用next(不带.push()):

        var arr = [];
        arr[arr.length] = 'foo';
        arr[arr.length] = 'bar';
        
        console.log(arr); // ["foo", "bar"]
        

        【讨论】:

          猜你喜欢
          • 2022-11-03
          • 1970-01-01
          • 2010-12-29
          • 1970-01-01
          • 1970-01-01
          • 2018-11-19
          • 1970-01-01
          • 2012-08-03
          相关资源
          最近更新 更多