如何使用 javascript 为数据对创建动态数组?

How to create dynamic array for pairs of data using javascript?

如何使用 javascript 为数据对创建动态数组?我想要精确结构,如动态数组中的示例数据对所示。我尝试了下面的代码,但我的数组似乎不正确。谁能帮我解决 it.Thanks

注: alert(files.join('\n'));显示[对象对象] 要存储在数组

中的数据对示例
files: [

        {'url': 'http://www.somesite.com/1.jpg', 'filename': 'new1.jpg'},
        {'url': 'http://www.somesite.com/2.jpg', 'filename': 'new2.jpg'},
        {'url': 'http://www.somesite.com/2.jpg', 'filename': 'new3.jpg'},
    ],

我的数组创建函数:

<script>
var i=1;
  files = new Array();   
    function addtoArray(a,b){
    alert("URL:"+a+"\nFileName:"+b);

    files[i] = { url: +a, filename: +b };
    i++;
    alert(files.join('\n'));
    };
</script>
<body>
<button onclick="addtoArray('http://www.somesite.com/1.jpg','new1.jpg')">add to array</button>

<button onclick="addtoArray('http://www.somesite.com/2.jpg','new2.jpg')">add to array</button>

试试这个。

function addtoArray(a,b){
files.push({ url: a, filename: b });
};

编辑:添加代码以显示内容

alert(JSON.stringify(files));

这似乎在 Codepen 中有效。 (http://codepen.io/dharshba/pen/YXQvPP)

<script>
files = [];

function addtoArray(a, b) {
  var obj = {
    url: a,
    filename: b
  };
  files.push(obj);
};
</script>

我相信 +a 和 +b 至少是问题的一部分。以这种方式使用 + 运算符会尝试将字符串强制转换为数字,这并不是您真正想要的。

要回答有关在警报中以人类可读形式查看数组的问题,您可以使用:

alert(JSON.stringify(files));