在javascript中组合两个对象并转换为String

时间:2014-02-18 11:50:01

标签: javascript arrays string variables

我希望我在这里遗漏了一些明显的东西,但我已经尝试过去半天将两个变量设置为在Javascript中以某种格式组合我可以将其作为字符串进行,但是我需要以不同的格式

如果我从复选框中选择选项{"GILLS":"7"},则可以正常工作,但如果选择了两个选项,query1应该看起来像[{"GILLS":"1"},{"GILLS":"7"}]。我不能对变量使用+ =,因为这会引发意外的令牌错误。

var Query1 = '';
var Query3 = '';

if ($('input[name=checkbox2a]:checked').length > 0) {
  var  Query3 = {"GILLS":"7"};
}

if ($('input[name=checkbox2b]:checked').length > 0) {
  var Query3 = {"GILLS":"1"};
}

4 个答案:

答案 0 :(得分:1)

尝试

  var Query1 = [];

并在您的函数中使用

Query1.push({"GILLS":"1"})

所以改变将如下所示

var Query1 = [];
var Query3 = [];

if ($('input[name=checkbox2a]:checked').length > 0) {
    Query3.push({"GILLS":"7"});
}
if ($('input[name=checkbox2b]:checked').length > 0) {
    Query3.push({"GILLS":"1"});                    
}

然后你可以使用join会给你字符串

Query3.join(", ")

答案 1 :(得分:0)

从Query3中创建一个数组,如果你最后还想要一个字符串,请使用.join(“”)。

var Query1 = '';
var Query3 = [];

if ($('input[name=checkbox2a]:checked').length > 0) {
  Query3.push({"GILLS":"7"});
}

if ($('input[name=checkbox2b]:checked').length > 0) {
  Query3.push({"GILLS":"1"});                    
}

Query3 = Query3.join(""); // back to string, if you so like

答案 2 :(得分:0)

如果您采用有时变量属于Object({"GILLS": "1" })的方法,有时它的类型为List([{"GILLS":"1"},{"GILLS":"7"}]),那么您自己会感到痛苦。

由于有时需要是一个列表,因此请确保总是一个列表。即使有时它是长度为1的列表。然后当你读取该值时,你永远不需要条件逻辑来处理两种可能的类型。

所以,它总是一个List:

var query3 = [];

...然后很容易操纵:

if(...) {
    query3.push( { "GILLS": "7" } );
}
if(...) {
    query3.push( { "GILLS": "1" } );
}

答案 3 :(得分:0)

首先,您在不同的范围内声明相同的变量。除非你知道自己在做什么,否则不要这样做。换句话说,当您使用此特定变量时,仅对“空格”中的变量使用var关键字一次。

javascript的优点/缺点(选择一个;))是没有类型控件。如果您键入var Query3 = '';然后Query3 = {"GILLS":"7"};解释器将执行此操作而不会有任何抱怨,除非很有可能,这不是您想要做的;)。在这种情况下,它使变量Query3为空字符串,然后使其成为对象。

在您的情况下,您希望在结果中包含一组对象。首先声明var Query3=[];然后使用推送方法(Query3.push({});)添加元素。