Проблема при сравнении элементов массива (Javascript) - PullRequest
0 голосов
/ 11 января 2019

Эй, у меня небольшая проблема. Поэтому в основном я передаю строку в функцию в качестве аргумента, затем преобразую ее в массив, и я пытаюсь сравнить сгенерированные элементы массива друг с другом, и если они равны, он должен вернуть ")" else "(", но есть проблема при сравнении элементов и значений неправильно. Может быть, кто-то может мне помочь.

function duplicateEncode(word) {
  let splitString = word.split("");
  let newArr = splitString.map((val, index, arr) => {
    for (let i = 0; i < splitString.length; i++) {
      if (val === arr[i]) {
        return ')';
      } else {
        return '(';
      }
    }
  });
  return newArr.join('');
}

1 Ответ

0 голосов
/ 11 января 2019

Используйте объект Map Javascript для хранения, если текущая буква существует или нет.

function duplicateEncode(word){
	let m = new Map();
        let splitString= word.split("");
	let coded = "";
	splitString.map( s => {
		if(!m[s]){
			m[s] = true
			coded += "("
		} else {
			coded += ")"
		}
	})
	return coded
}
console.log(duplicateEncode("stack"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...