[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"
배열 내부의 문자열을 인용하고 중첩 된 배열을 적절하게 처리하므로 더 깔끔합니다.
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);