在TypeScript中我想要逗号分隔的重复字符串中的不同值:

时间:2017-11-10 11:05:31

标签: angular typescript

在TypeScript中,我想要逗号分隔的重复字符串中的不同值:

this.Proid = this.ProductIdList.map(function (e) { return e.ProductId;}).join(',');
this.Proid = "2,5,2,3,3";

我需要:

this.Proid = "2,5,3";

2 个答案:

答案 0 :(得分:3)

这可以通过ES6完成,

var input = [2,5,2,3,3];
var test = [ ...new Set(input) ].join();

<强>样本

var input = [2,5,2,3,3];
var test = [ ...new Set(input) ].join();
console.log(test);

修改

对于ES5及以下版本,您可以尝试

var input = [2,5,2,3,3];
var test = Array.from(new Set(input).values()).join();
console.log(test);

答案 1 :(得分:2)

一种可能的解决方案:

this.ProductIdList = ["2","5","2","3","3"]
const tab = this.ProductIdList.reduce((acc, value) => {
    return !acc.includes(value) ? acc.concat(value) : acc
}, []).join(',');

console.log(tab) //"2,5,3"

你也可以在一行中完成:

this.ProductIdList = ["2","5","2","3","3"]
const tab = this.ProductIdList.reduce((acc, value) => !acc.includes(value) ? acc.concat(value) : acc, []).join(',');

console.log(tab) //"2,5,3"