Javascript JS/JQuery-根据值拆分和映射逗号分隔的字符串和联接结果

Javascript JS/JQuery-根据值拆分和映射逗号分隔的字符串和联接结果,javascript,jquery,Javascript,Jquery,ajax成功返回一个逗号分隔的字符串(1,2,3),我将其拆分并映射以获得某些选择选项的.text()。。。像这样: js: 上面在控制台中为我提供了以下内容: 控制台: 1,2,3 undefinedPortfolio Test 01, undefinedPortfolio Test 01,Portfolio Test 02, undefinedPortfolio Test 01,Portfolio Test 02,Portfolio Test 03,

ajax成功返回一个逗号分隔的字符串(1,2,3),我将其拆分并映射以获得某些选择选项的.text()。。。像这样:

js:

上面在控制台中为我提供了以下内容:

控制台:

1,2,3
undefinedPortfolio Test 01,
undefinedPortfolio Test 01,Portfolio Test 02,
undefinedPortfolio Test 01,Portfolio Test 02,Portfolio Test 03,                     
。。。但我想要的是:

Portfolio Test 01, Portfolio Test 02, Portfolio Test 03

。。。我怎么能得到这个

.map
希望您从提供给它的函数内部返回一个值:

const joinText = stringResult.split(",").map(function(port) {
  return $('.select-portfolio option[value=' + port + ']').text();
});
console.log(joinText);

(您当前使用的
.map
类似于
forEach
,这不适合您试图实现的目标)

.map
希望您从提供给它的函数内部返回一个值:

const joinText = stringResult.split(",").map(function(port) {
  return $('.select-portfolio option[value=' + port + ']').text();
});
console.log(joinText);

(您当前使用的
.map
类似于
forEach
,这不适合您试图实现的目标)

明确地说,您没有将
joinText
初始化为空字符串。只需将其声明为
var
即可将其值初始化为
undefined
。当您向其中添加一个字符串时,它被转换为一个字符串
“undefined”
,因此现在您有了
“undefined”+“Portfolio Test 01”

要修复此问题,您可以在声明时对其进行初始化:

var joinText=''


**编辑:其他答案是正确的,因为您使用
.map
方法作为
.forEach
for
循环;然而,我只是指出是什么将
未定义的
文本放在字符串输出前面。

明确地说,您没有将
连接文本
初始化为空字符串。只需将其声明为
var
即可将其值初始化为
undefined
。当您向其中添加一个字符串时,它被转换为一个字符串
“undefined”
,因此现在您有了
“undefined”+“Portfolio Test 01”

要修复此问题,您可以在声明时对其进行初始化:

var joinText=''


**编辑:其他答案是正确的,因为您使用
.map
方法作为
.forEach
for
循环;然而,我只是指出是什么将
未定义的
文本放在字符串输出前面。

数组上的
map
方法使用给定函数返回一个新数组,以“映射”该数组中的元素(值)到结果数组中的新元素(值)

您可以对数组使用
join
方法来反转拆分

所以你想要的是:

const joinText = stringResult.split(",")
                   .map(port => $('.select-portfolio option[value=' + port + ']').text())
                   .join(", ");
console.log(joinText);

数组上的
map
方法使用给定函数返回一个新数组,将该数组中的元素(值)映射到结果数组中的新元素(值)

您可以对数组使用
join
方法来反转拆分

所以你想要的是:

const joinText = stringResult.split(",")
                   .map(port => $('.select-portfolio option[value=' + port + ']').text())
                   .join(", ");
console.log(joinText);