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