没有引号的数组对象

时间:2015-11-17 14:52:25

标签: javascript jquery arrays

我需要在下面的代码中更改以接收不带每个元素引号的数组(最好是:如果它们有逗号)

我需要什么:

myData = [
            {id:0,
            label:"First",
            color:"#ffffff",
            value:"30"},

            {id:1,
            label:"Second",
            color:"#000000",
            value:"70.0000000000"}
        ]

我得到了什么:

myData = [
            "{id:0,
            label:"First",
            color:"red",
            value:"30"}"

            "{id:1.00000,
            label:"Second",
            color:"blue",
            value:"70.0000000000"}"
        ]

创造我得到的代码:

function AddRowToTable(id, name, desc, value, color) {
  arr.push('{id:' + id + ', label:"' + name + '", color:"'+ color + '", value:"' + value + '"}');
}

我可以更改什么来删除""在{}之外 - 他们很好。

了解整个故事:Link to other Discussion

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

将您的功能更改为:

function AddRowToTable(id, name, desc, value, color) {
  arr.push({id: id, label: name, color: color, value: value});
}

这样,你正在推动一个对象(这就是你想要的!)而不是一个字符串。

答案 1 :(得分:1)

你正在向阵列推动刺痛,而不是对象,你需要以下

function AddRowToTable(id, name, desc, value, color) {
      arr.push({id: id, label: name , color: color, value: value});
}

请注意,我已删除了引号,并且未使用+进行连接。但是你的函数中arr是什么?它是函数之外的变量吗?咳..

var arr = [];

function AddRowToTable(id, name, desc, value, color) {
          arr.push({id: id, label: name , color: color, value: value});
}

AddRowToTable(1, 'mike sav', 'what is this?', 'red', '10000');

另外,为什么要将desc作为参数传递但不使用它?