자바 스크립트 배열을 문자열로 변환
"값"목록을 반복하여 문자열로 변환하려고합니다. 코드는 다음과 같습니다.
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>
(출력은 dev 콘솔에 나타납니다)
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(', ');
∆ : 요소를 계속 반복해야하는지 여부 만 반환 값을 사용합니다. "거짓"값을 반환하면 루프가 중지됩니다.
이것은 내 함수입니다. 객체 또는 배열을 json으로 변환하십시오.
function obj2json(_data){
str = '{ ';
first = true;
$.each(_data, function(i, v) {
if(first != true)
str += ",";
else first = false;
if ($.type(v)== 'object' )
str += "'" + i + "':" + obj2arr(v) ;
else if ($.type(v)== 'array')
str += "'" + i + "':" + obj2arr(v) ;
else{
str += "'" + i + "':'" + v + "'";
}
});
return str+= '}';
}
난 그냥 v0.2로 편집 ^. ^
function obj2json(_data){
str = (($.type(_data)== 'array')?'[ ': '{ ');
first = true;
$.each(_data, function(i, v) {
if(first != true)
str += ",";
else first = false;
if ($.type(v)== 'object' )
str += '"' + i + '":' + obj2json(v) ;
else if ($.type(v)== 'array')
str += '"' + i + '":' + obj2json(v) ;
else{
if($.type(_data)== 'array')
str += '"' + v + '"';
else
str += '"' + i + '":"' + v + '"';
}
});
return str+= (($.type(_data)== 'array')? ' ] ':' } ');;
}
var arr = new Array();
var blkstr = $.each([1, 2, 3], function(idx2,val2) {
arr.push(idx2 + ":" + val2);
return arr;
}).join(', ');
console.log(blkstr);
또는
var arr = new Array();
$.each([1, 2, 3], function(idx2,val2) {
arr.push(idx2 + ":" + val2);
});
console.log(arr.join(', '));
convert an array to a GET param string that can be appended to a url could be done as follows
function encodeGet(array){
return getParams = $.map(array , function(val,index) {
var str = index + "=" + escape(val);
return str;
}).join("&");
}
call this function as
var getStr = encodeGet({
search: $('input[name="search"]').val(),
location: $('input[name="location"]').val(),
dod: $('input[name="dod"]').val(),
type: $('input[name="type"]').val()
});
window.location = '/site/search?'+getStr;
which will forward the user to the /site/search? page with the get params outlined in the array given to encodeGet.
I needed an array to became a String rappresentation of an array I mean I needed that
var a = ['a','b','c'];
//became a "real" array string-like to pass on query params so was easy to do:
JSON.stringify(a); //-->"['a','b','c']"
maybe someone need it :)
working example
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);
Shouldn't confuse Array's with Lists... This is a list: {...} and has no length, or other Array properties.
This is an Array: [...] and you can use array functions, methods and so, like someone suggested here: someArray.toString();
"someObj.toString();" just will not work on any other objects type, like Lists. ;-)
Array.prototype.toString()
The toString() method returns a string representing the specified array and its elements.
var months = ["Jan", "Feb", "Mar", "Apr"];
months.toString(); // "Jan,Feb,Mar,Apr"
Syntax
arr.toString()
Return value
A string representing the elements of the array.
for more information :
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString
Here's an example using underscore functions.
var exampleArray = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
var finalArray = _.compact(_.pluck(exampleArray,"name")).join(",");
Final output would be "moe,larry,curly"
참고URL : https://stackoverflow.com/questions/5289403/convert-javascript-array-to-string
'Programming' 카테고리의 다른 글
새 탭의 javascript window.location (0) | 2020.08.04 |
---|---|
ImportError : Crypto.Cipher라는 모듈이 없습니다. (0) | 2020.08.04 |
하스켈에 대한 소란은 무엇입니까? (0) | 2020.08.04 |
iOSStatusBarStyle PreferredStatusBarStyle이 iOS 7에서 작동하지 않습니다 (0) | 2020.08.04 |
SQLite의 "존재하지 않으면 삽입"문 (0) | 2020.08.04 |