Neo*_*Neo 108 javascript arrays string jquery frontend
我正在尝试迭代"值"列表并将其转换为字符串.这是代码:
var blkstr = $.each(value, function(idx2,val2) {
var str = idx2 + ":" + val2;
alert(str);
return str;
}).get().join(", ");
Run Code Online (Sandbox Code Playgroud)
alert()函数工作正常并显示正确的值.但不知何故,jquery的.get()函数无法获得正确的对象并失败.我究竟做错了什么?
Sha*_*ard 125
如果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(", "));
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
(输出将出现在开发控制台中)
正如费利克斯所提到的,each()
只是迭代数组,仅此而已.
Spi*_*man 114
从数组转换为字符串非常简单!
var A = ['Sunday','Monday','Tuesday','Wednesday','Thursday']
array = A + ""
Run Code Online (Sandbox Code Playgroud)
就是现在A是一个字符串.:)
Jus*_*tin 101
您可以使用.toString()
逗号连接数组.
var array = ['a', 'b', 'c'];
array.toString(); // result: a,b,c
Run Code Online (Sandbox Code Playgroud)
或者,设置分隔符array.join('; '); // result: a; b; c
.
Nic*_*las 48
不确定这是否是你想要的但是
var arr = [A, B, C];
var arrString = arr.join(", ");
Run Code Online (Sandbox Code Playgroud)
这导致以下输出:
A,B,C
VIJ*_*Y P 36
将数组转换为字符串的四种方法.
强制转换为字符串
var arr = ['a', 'b', 'c'] + []; // "a,b,c"
var arr = ['a', 'b', 'c'] + ''; // "a,b,c"
Run Code Online (Sandbox Code Playgroud)
调用 .toString()
var arr = ['a', 'b', 'c'].toString(); // "a,b,c"
Run Code Online (Sandbox Code Playgroud)
明确加入使用 .join()
var arr = ['a', 'b', 'c'].join(); // "a,b,c" (Defaults to ',' seperator)
var arr = ['a', 'b', 'c'].join(','); // "a,b,c"
Run Code Online (Sandbox Code Playgroud)
您可以使用其他分隔符,例如, ', '
var arr = ['a', 'b', 'c'].join(', '); // "a, b, c"
Run Code Online (Sandbox Code Playgroud)
这更干净,因为它引用了数组中的字符串并正确处理嵌套数组.
var arr = JSON.stringify(['a', 'b', 'c']); // '["a","b","c"]'
Run Code Online (Sandbox Code Playgroud)
Fel*_*ing 16
jQuery.each
只是循环遍历数组,它不会对返回值Δ做任何事情.你正在寻找jQuery.map
(我也认为这get()
是不必要的,因为你没有处理jQuery对象):
var blkstr = $.map(value, function(val,index) {
var str = index + ":" + val;
return str;
}).join(", ");
Run Code Online (Sandbox Code Playgroud)
但是为什么在这种情况下使用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(', ');
Run Code Online (Sandbox Code Playgroud)
Δ:它只使用返回值是否应继续循环元素.返回"falsy"值将停止循环.
Dee*_*ath 14
使用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);
Run Code Online (Sandbox Code Playgroud)