javascript 转换设置为逗号分隔的字符串 - IE11

标签 javascript arrays set

我在 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/

相关文章:

python - C++ 中的高效集合并集和交集

python - 为什么不能 unpickled 这个 set 子类的实例?

javascript - 如何编写递归函数来获取表示每个值排列集合的数组?

javascript - 在 JS 中对数字文字调用函数的规则是什么?

javascript - addEventListener 单击仅适用于类更改一次

c - 如何将结构中的所有数据存储到新数组中?

android - 如何为下面的 ArrayList 制作下一个和上一个按钮代码?

javascript - 在一行中显示搜索表单和导航栏菜单项

javascript - 用户点击时如何下载文件

javascript - 在 Node.js 中的两个数组中查找匹配字符串的最有效和优雅的方法