2014-02-18 2 views
0

나는 여기에 뭔가 분명한 것을 놓치기를 바라고 있지만 지난 반일 동안 두 가지 변수를 자바에서 특정 형식으로 결합하도록 설정하려고 시도했다. 나는 문자열로 그것을 할 수있다. , 그러나 나는 다른 형식으로 그것을 필요로한다.자바 스크립트에서 두 객체를 결합하여 문자열로 변환

{"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"}; 
} 

답변

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"});      
} 

다음 당신이 문자열을 줄 것이다 조인을 사용하실 수 있습니다

var Query1 = []; 

및 함수에

그래서 변화가 같이있을 것입니다

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

을 사용하십시오

Query3.join(", ") 
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 
0

가끔 변수가 Object 유형 ({"GILLS": "1" })의 인 접근 방식을 가지고가는 경우에 당신은 자신을 위해 고통을 유발하고 때로는 유형 목록 ([{"GILLS":"1"},{"GILLS":"7"}])이다.

가끔이 목록 일 필요가 있으므로 항상 목록인지 확인하십시오. 때로는 길이가 1 인 목록이지만 그 값을 읽을 때 두 가지 유형을 처리하기 위해 조건부 논리가 필요하지 않습니다.

그래서, 그것은 항상 목록입니다 :

var query3 = []; 

... 그리고 그것은 조작하기 쉽다 : 처음에는

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

, 다른 범위에 동일한 변수를 선언합니다. 당신이하고있는 일을 알지 못하면 이것을하지 마십시오. 즉,이 특정 변수를 사용할 때 "공간"의 변수에 대해서만 var 키워드를 한 번만 사용하십시오.

자바 스크립트의 장점/단점 (선택 사항)은 유형 제어가 없다는 것입니다. var Query3 = '';을 입력하면 Query3 = {"GILLS":"7"}; 인터프리터가 높은 확률이 있다는 것 이외의 불만없이이를 실행하게됩니다. 이는 정확히 원하는 것을 의미하지 않습니다. 이 경우 변수 Query3을 빈 문자열로 만든 다음 객체로 만듭니다.

귀하의 경우, 결과물에 객체 배열을 갖고 싶습니다. 먼저 var Query3=[];을 선언 한 다음 푸시 방법 (Query3.push({});)을 사용하여 요소를 추가합니다.

관련 문제