方法 1: 使用Set去重(推荐)
function removeDuplicatesSet(str) {
return [...new Set(str)].join('');
}
// 测试字符串
const testString = "hello world javascript programming";
// 调用
const resultSet = removeDuplicatesSet(testString);
// 输出
console.log('1. Set方法结果:', `"${resultSet}"`);
// 结果
// Set方法结果: "helo wrdjavsciptgmn"利用 Set 自动去重的特性,最简单高效的方法。
方法 2: 使用 filter
function removeDuplicatesIndexOf(str) {
let result = [];
for (let char of str) {
if (result.indexOf(char) === -1) {
result.push(char);
}
}
return result.join("");
}
// 测试字符串
const testString2 = "hello world javascript programming";
// 调用
const resultIndexOf = removeDuplicatesIndexOf(testString2);
// 输出
console.log('2. indexOf方法结果:', `"${resultIndexOf}"`);
// 结果
// indexOf方法结果: "helo wrdjavsciptgmn"方法3: 使用includes判断重复
function removeDuplicatesIncludes(str) {
let result = [];
for (let char of str) {
if (!result.includes(char)) {
result.push(char);
}
}
return result.join("");
}
// 测试字符串
const testString3 = "hello world javascript programming";
// 调用
const resultIncludes = removeDuplicatesIncludes(testString3);
// 输出
console.log('3. includes方法结果:', `"${resultIncludes}"`);
// 结果
// includes方法结果: "helo wrdjavsciptgmn"方法4: 使用对象属性去重
function removeDuplicatesObject(str) {
let obj = {};
let result = [];
for (let char of str) {
if (!obj[char]) {
obj[char] = true;
result.push(char);
}
}
return result.join("");
}
// 测试字符串
const testString4 = "hello world javascript programming";
// 调用
const resultObject = removeDuplicatesObject(testString4);
// 输出
console.log('4. 对象属性方法结果:', `"${resultObject}"`);
// 结果
// 对象属性方法结果: "helo wrdjavsciptgmn"方法5: 使用filter和indexOf
function removeDuplicatesFilter(str) {
return str.split('').filter((char, index, array) => {
return array.indexOf(char) === index;
}).join('');
}
// 测试字符串
const testString5 = "hello world javascript programming";
// 调用
const resultFilter = removeDuplicatesFilter(testString5);
// 输出
console.log('5. filter方法结果:', `"${resultFilter}"`);
// 结果
// filter方法结果: "helo wrdjavsciptgmn"