5

我正在使用.map函数将元素转换为数组,然后我想将此数组转换为字符串:

javascript:

var selectedElements = $('.data').map(function() {
    return $(this).hasClass('selected') ? 'true' : 'false';
});

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

var string = selectedElements  + "";

console.log("\ndebug:");
console.log(selectedElements);
console.log(A);
console.log(string );​

html:

<div class='data'></div>
<div class='data selected'></div>
<div class='data selected'></div>
<div class='data'></div>
<div class='data'></div>
<div class='data'></div>
<div class='data'></div>

控制台输出:

debug: fiddle.jshell.net:29
["false", "true", "true", "false", "false", "false", "false"]
Sunday,Monday,Tuesday,Wednesday,Thursday
[object Object] 

在这里小提琴:http: //jsfiddle.net/F8ufE/

如何将 selectedElements 转换为数组?

4

2 回答 2

14

根据.map()文档

由于返回值是一个 jQuery 对象,其中包含一个数组,因此在结果上调用 .get() 以使用基本数组是很常见的。

因此,如果您想获取实际的数组,可以使用get方法,如下所示:

var selectedElements = $('.data').map(function() {
    return $(this).hasClass('selected') + "";
}).get();

要将数组转换为字符串,您可以使用join方法:

selectedElements = selectedElements.join()
于 2012-10-02T12:45:06.207 回答
1

像这样使用 jQuery 函数.makeArray

var selectedElements = $.makeArray($('.data').map(function() {
    return $(this).hasClass('selected') ? 'true' : 'false';
}));

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

var string = selectedElements + "";

console.log("\ndebug:");
console.log(selectedElements);
console.log(A);
console.log(string);​

http://jsfiddle.net/U5LTK/

于 2012-10-02T12:42:54.093 回答