我在 IE11 中将 Set
转换为 逗号分隔字符串
时遇到问题,下面的代码在 chrome 中工作正常,但 IE11 不喜欢 数组.from
。
let a = new Set();
a.add("a");
a.add("b");
console.log(Array.from(a).join(","));
为了解决我正在做的事情:
let aArray = [];
let pushToArray = function(val) {
aArray.push(val);
};
a.forEach(pushToArray);
console.log(aArray.toString());
关于如何在 IE11 中更好地完成上述工作有什么建议吗?
最佳答案
如果您甚至不从中构建数组,而仅使用串联创建字符串,那就更好了:
let a = new Set();
a.add("a");
a.add("b");
function SetToString(set, delim){
let str = '';
set.forEach(function(elem){
str += elem + delim
});
return str
}
console.log(SetToString(a, ','));
这种方法的唯一问题是它还会在末尾添加一个逗号。
要避免这种情况,您有两种方法:
使用
.slice(0, -1) 删除最后一个逗号
let a = new Set(); a.add("a"); a.add("b"); function SetToString(set, delim){ let str = ''; set.forEach(function(elem){ str += elem + delim }); return str.slice(0, -1) } console.log(SetToString(a, ','));
对元素进行计数,并省略最后一个逗号
let a = new Set(); a.add("a"); a.add("b"); function SetToString(set, delim){ let str = ''; let i = 0; let size = set.size; set.forEach(function(elem){ str += elem if(i++ < size - 1) str += delim }); return str } console.log(SetToString(a, ','));
关于javascript 转换设置为逗号分隔的字符串 - IE11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60268901/