var getRepeats = function(arr) {
var count = {};
for (var i = 0; i < arr.length; i++) {
if (count[arr[i]] === undefined) {
count[arr[i]] = 1;
} else {
count[arr[i]]++;
}
}
return count;
};
var getRepeats = function(words) {
var valueWords = {};
for (var i = 0; i < words.length; i++) {
var index = 0;
var array = [];
for (var j = 0; j < words.length; j++) {
if (words[j] === words[i]) {
array[index] = words[j];
index++;
} else {
continue;
}
valueWords[words[j]] = array.length;
}
}
return valueWords;
}
var object = {
}
var getRepeats = function(mass){
for(var i=0;i<=mass.length - 1;i++){
var name = mass[i];
object[name] = 0;
for(var j=0;j<=mass.length - 1;j++){
if(mass[i] === mass[j]){
object[name] += 1;
}
}
}
return object
}
let getRepeats = function(currentArray) {
//создаем обьект
let objectRepeats = {};
//проходим массив циклом
for(let i = 0; i < currentArray.length; i++){
// обьявляем элемент массива в итерации названием свойства обьекта
let currentObjProp = objectRepeats[currentArray[i]];
// проверка на undefinded
if(!currentObjProp) {
objectRepeats[currentArray[i]] = 1;
} else {
objectRepeats[currentArray[i]] += 1;
}
}
return(objectRepeats);
}
Т.е. только так можно добавить свойство в объект?
Можно с помощью точечной нотации, но в таком случае не выйдет использовать значение переменной (в этом случае значение элемент массива) как свойство обьекта, ровно как и прочитать его при проверке на undefinded
Здравствуйте, мне непонятно что значит: “Переменная хранит ссылку на объект.”
У меня возникли затруднения, когда я захотел поменять местами объекты в отсортированном массиве.
Если создать объект, а после его задать другой переменной - второй объект(копия) не создастся, поэтому при изменении объекта по переменной-ссылке изменяться будет оригинальный объект. Грубо говоря - обе переменные хранят лишь ссылку на объект, а не его самого
*//пишем функцию *
let getRepeats = function(array) {
*//создаем пустой объект*
let object = {};
*//запускаем цикл (переберем полученный массив)*
for (let i=0; i<array.length; i++){
*//если элемента из массива нет в объекте*
if (!(array[i] in object)){
*//добавляем элемента в объект в виде ключа со значением 1*
object[array[i]] = 1;
} else {
*//если таков элемент уже есть, добавляем его значению единицу*
object[array[i]] += 1;}
}
*//выводим результат (заполненный объект)*
return object;
};
Помогите, пожалуйста, понять, в чем ошибка. Решил сделать так:
let getRepeats = function (array) {
let obj = {};
for (let y = 0; y <= array.length-1; y++) {
if (array.indexOf[array[y]] !== array.lastIndexOf[array[y]]) {
obj[array[y]] ++
}
else {
obj[array[y]] = 1;
}}
return obj
}
У меня все элементы массива в объекте = 1 в итоге. Почему не работает obj[array[y]] ++? Никак не могу понять, в чем ошибка. Спасибо за ответ
var getRepeats = function(arr) {
var name = {};
for(i = 0; i < arr.length-1; i++) {
var count = 1;
for(var j = i+1; j < arr.length; j++) {
if(arr[i] === arr[j]) {
count++;
}
}
if(!name[arr[i]]) {
name[arr[i]] = count;
}
}
return name;
}
let getRepeats = function(arr) {
let object = {};
for (let i = 0; i < arr.length; i++) {
object[arr[i]] = 0;
for (let j = 0; j < arr.length; j++) {
if (arr[i] === arr[j]) {
object[arr[i]]++;
}
}
}
return object;
}
Такое решение имеет право на жизнь? и как можно проще и короче описать?
let getRepeats = function(array){
let object = {}
for(let i = 0; i < array.length; i++){
let x = 0
for(let j = 0; j < array.length; j++){
if(array[i] == array[j]){
x++
}
}
object[array[i]] = x
}
return object;
}
let getRepeats = function (data) {
let repeats = {};
for (let i = 0; i < data.length; i++) {
repeats[data[i]] = 0;
for (let j = 0; j < data.length; j++) {
if (data[i] == data[j]) {
repeats[data[i]]++;
}
}
}
return repeats;
};
решение оказалось проще и совсем на поверхности, надеюсь убитые на обдумывание часы – не напрасная трата времени…
const getRepeats = function(words) {
let obj = {}
for (let word of words) {
obj[word] === undefined ? obj[word] = 1: obj[word]++
}
return obj
}
для любителей кода в одну строку
const getRepeats = words => words.reduce((obj, word) => (obj[word] === undefined ? obj[word] = 1: obj[word]++, obj), {})
Мой вариант, с использованием только того, что проходили в курсе
let getRepeats = function (array) {
let words = { }
for (let i = 0; i<array.length; i++){
let current = words[array[i]]
if (words[array[i]] >= 1) {
words[array[i]]++
} else {
words[array[i]] = 1
}
}
return words
}
оч помогло объяснение. Спасибо