[javascript] 자바 스크립트 배열을 문자열로 변환

“값”목록을 반복하여 문자열로 변환하려고합니다. 다음은 코드입니다.

var blkstr = $.each(value, function(idx2,val2) {
     var str = idx2 + ":" + val2;
     alert(str);
     return str;
}).get().join(", ");    

alert () 함수는 잘 작동하고 적절한 값을 표시합니다. 그러나 어떻게 든 jquery의 .get () 함수는 올바른 종류의 객체를 얻지 못하고 실패합니다. 내가 뭘 잘못하고 있죠?



답변

경우 value연관 배열이며, 이러한 코드는 잘 작동합니다 :

var value = { "aaa": "111", "bbb": "222", "ccc": "333" };
var blkstr = [];
$.each(value, function(idx2,val2) {
  var str = idx2 + ":" + val2;
  blkstr.push(str);
});
console.log(blkstr.join(", "));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

(출력은 개발 콘솔에 나타납니다)

Felix가 언급했듯이, each()더 이상은 배열을 반복하고 있습니다.


답변

배열에서 문자열로 변환하는 것은 매우 쉽습니다!

var A = ['Sunday','Monday','Tuesday','Wednesday','Thursday']
array = A + ""

이제 A는 문자열입니다. 🙂


답변

를 사용 .toString()하여 쉼표로 배열을 결합 할 수 있습니다 .

var array = ['a', 'b', 'c'];
array.toString(); // result: a,b,c

또는으로 구분 기호를 설정하십시오 array.join('; '); // result: a; b; c.


답변

이것이 당신이 원하는 것인지 확실하지 않지만

var arr = [A, B, C];
var arrString = arr.join(", ");

결과는 다음과 같습니다.

A, B, C


답변

배열을 문자열로 변환하는 네 가지 방법.

문자열로 강제 변환

var arr = ['a', 'b', 'c'] + [];  // "a,b,c"

var arr = ['a', 'b', 'c'] + '';  // "a,b,c"

부름 .toString()

var arr = ['a', 'b', 'c'].toString();  // "a,b,c"

다음을 사용하여 명시 적으로 결합 .join()

var arr = ['a', 'b', 'c'].join();  // "a,b,c" (Defaults to ',' seperator)

var arr = ['a', 'b', 'c'].join(',');  // "a,b,c"

예를 들어 다른 구분 기호를 사용할 수 있습니다. ', '

var arr = ['a', 'b', 'c'].join(', ');  // "a, b, c"

사용 JSON.stringify()

배열 내부의 문자열을 인용하고 중첩 된 배열을 적절하게 처리하므로 더 깔끔합니다.

var arr = JSON.stringify(['a', 'b', 'c']);  // '["a","b","c"]'


답변

jQuery.each배열을 반복하고 있으며 반환 값 에는 아무 작업도하지 않습니다 . 당신은 찾고 있습니다 jQuery.map( get()jQuery 객체를 다루지 않기 때문에 불필요 하다고 생각 합니다) :

var blkstr = $.map(value, function(val,index) {
     var str = index + ":" + val;
     return str;
}).join(", ");  

데모


하지만이 경우 왜 jQuery를 사용합니까? map요소 당 불필요한 함수 호출 만 도입합니다.

var values = [];

for(var i = 0, l = value.length; i < l; i++) {
    values.push(i + ':' + value[i]);
}

// or if you actually have an object:

for(var id in value) {
    if(value.hasOwnProperty(id)) {
        values.push(id + ':' + value[id]);
    }
}

var blkstr = values.join(', ');

∆ : 요소를 계속 반복할지 여부에 관계없이 반환 값만 사용합니다. “거짓”값을 반환하면 루프가 중지됩니다.


답변

사용 join()및 구분 기호입니다.

작업 예

var arr = ['a', 'b', 'c', 1, 2, '3'];

// using toString method
var rslt = arr.toString();
console.log(rslt);

// using join method. With a separator '-'
rslt = arr.join('-');
console.log(rslt);

// using join method. without a separator 
rslt = arr.join('');
console.log(rslt);