2016-06-30 46 views
0

我试图输出现有阵列我有一个对象数组中删除单引号,但是,现有的阵列没有键,以便在试图创建它,我这样做如何从阵列

... 
    var range = []; 
    for (var i = 0; i < dateArray.length; i ++) { 
     range.push('{ date: "'+dateArray[i]+'" }') 
    } 
    var fake = "'"+myArray+"'" 
    var p = fake.replace(/[']+/g, '') 
    var o = [p] 

控制台登录我的“O”变给了我这个....

[ '{ date: "Wed Jun 08 2016 12:00:00 GMT-0400 (EDT)" },{ date: "Thu Jun 09 2016 12:00:00 GMT-0400 (EDT)" }...'] 

的问题是,在阵列中我的对象获得的由单引号包裹,造成它被认为是一个大的字符串。

看到这不再被认为是一个字符串,我不能做str.replace来摆脱不需要的引号。最终,我希望它看起来像这样:

[ { date: "Wed Jun 08 2016 12:00:00 GMT-0400 (EDT)" },{ date: "Thu Jun 09 2016 12:00:00 GMT-0400 (EDT)" }...] 
+0

使用JSON.parse()来文档https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/JSON/parse –

+0

在给定的例子中'JSON.parse()'是无用的。事实上,它会抛出一个错误。 –

回答

1

你试过:

var range = []; 
    for (var i = 0; i < dateArray.length; i ++) { 
     range.push({ date: dateArray[i].toString() }) 
    } 
+1

这个工作完美,我想我只是做了太多。可能会在不使用toString函数的情况下使用它,就像之后的帖子一样,但接受这个函数并不公平,因为除了那个之外,它和你的完全一样。谢谢! – Jasmin

0

只需将单引号标记添加到数组中时删除单引号标记。您必须向数组添加对象而不是字符串。

var range = []; 
    for (var i = 0; i < dateArray.length; i ++) { 
     range.push({ date: dateArray[i] }) 
    } 
+0

道歉看起来像这样var range = []; (var i = 0; i

+1

如果您想添加更改,您可以编辑您的anwser ... :) –

+0

你检查你的版本是否有效? –