按字母顺序排序没有重复的数组

时间:2019-06-20 16:04:05

标签: javascript

我正在尝试创建一个函数,该函数需要一个字符串数组,并返回一个字符串,该字符串包含所有参数字符串的各个字符,按字母顺序,不重复。

var join = ["test"];
var splt = (("sxhdj").split(""))
var sort = splt.sort()
var jn = sort.join("")
join.push(jn)


function removeDuplicates(join) {
  let newArr = {};
  join.forEach(function(x) { //forEach will call a function once for 
    if (!newArr[x]) {
      newArr[x] = true;
    }
  });
  return Object.keys(newArr);
}
console.log(removeDuplicates(join));

我无法使当前代码正常工作

4 个答案:

答案 0 :(得分:1)

类似这样的东西:)希望对您有所帮助!

const string = 'aabbccd';
const array = string.split('');
let sanitizedArray = [];
array.forEach(char => {
    // Simple conditional to check if the sanitized array already 
    // contains the character, and pushes the character if the conditional 
    // returns false

    !sanitizedArray.includes(char) && sanitizedArray.push(char)
})
let result = sanitizedArray.join('')


console.log(result);

答案 1 :(得分:0)

尝试一下:

const data = ['ahmed', 'ghoul', 'javscript'];
const result = [...data.join('')]
.filter((ele, i, arr) => arr.lastIndexOf(ele) === i)
.sort()
.join('');

console.log(result)

答案 2 :(得分:0)

查看注释以获取解释。

感兴趣的链接

var splt = ("sxhdjxxddff").split("")

// You need to use localeCompare to properly 
// sort alphabetically in javascript, because
// the sort function actually sorts by UTF-16 codes
// which isn't necessarily always alphabetical
var sort = splt.sort((a, b)=>a.localeCompare(b))

// This is an easy way to remove duplicates
// by converting to set which can't have dupes
// then converting back to array
sort = [...new Set(sort)]

var jn = sort.join("");
console.log(jn);

答案 3 :(得分:0)

可能有更好的方法,一种方法是将其映射到对象,将对象的键用于使用的字母,而不是对这些键进行排序。

const words = ['foo', 'bar', 'funky'];
const sorted =
  Object.keys(
    ([...words.join('')])  // combine to an array of letters
      .reduce((obj, v) => obj[v] = 1 && obj, {}) // loop over and build hash of used letters
    ).sort()  //sort the keys

console.log(sorted.join(''))