1

Go through the array numbers and put each number (2, 4, 5, 37, 0) as a property of the object numbers_duplicates. The value of each property should be that number multiplied by two. (first create the empty object before starting to add the properties and values).

var numbers= [2, 4, 5, 37, 0]
var duplicate_numbers = {} 

// later it should be like this { 0: 0, 2: 4, 4: 8, 5: 10, 37: 74}

enter code here for (var i = 0; i < numbers.length; ++i) {
duplicate_numbers.push( numbers[i]*2 );
    duplicate_numbers.push( i );}

How do I solve this problem?

Emma
  • 27,428
  • 11
  • 44
  • 69
Gon Alb
  • 41
  • 6
  • Possible duplicate of [How to count duplicate value in an array in javascript](https://stackoverflow.com/questions/19395257/how-to-count-duplicate-value-in-an-array-in-javascript) – Hamit YILDIRIM May 19 '19 at 21:24

6 Answers6

2

Here you go mate!

    let arr = [2, 4, 5, 37, 0];
    let obj = {};

    arr.forEach((x) => {
       obj[x] = x*2
    });
    
    console.log(obj);
1

For get or set an object property, you can use bracket notation. Here is a version using the basic for loop you have written.

var numbers = [2, 4, 5, 37, 0];
var duplicate_numbers = {};

for (var i = 0; i < numbers.length; i++)
{
    duplicate_numbers[numbers[i]] = numbers[i] * 2;
}

console.log(duplicate_numbers);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

Alternatively, you can also use Array.reduce() in this way:

var numbers = [2, 4, 5, 37, 0];

var duplicate_numbers = numbers.reduce((acc, n) => (acc[n] = 2 * n, acc), {});

console.log(duplicate_numbers);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
Shidersz
  • 16,846
  • 2
  • 23
  • 48
0

You need to use a Object to do this, a object is made of key, value pairs.

const numbers_duplicates = {};
const numbers =  [2, 4, 5, 37, 0];

numbers.forEach(number => { numbers_duplicates[number] = number * 2 });

Ramon Portela
  • 419
  • 2
  • 8
0
const numbers = [2, 4, 5, 37, 0] ;
const duplicateNumbers = {};
const numbersSorted = numbers.sort((a, b) => a - b);

for (let i = 0; i < numbersSorted.length; i++) {
  duplicateNumbers[numbersSorted[i]] = numbersSorted[i] * 2;
}
Karel
  • 79
  • 1
  • 5
0

You may want to consider a Map. This is a special object exactly made for purposes that you need. It has a bunch of arraylike methods for handling that kind of objects. Please take a look Map.

var numbers= [2, 4, 5, 37, 0];
var duplicate_numbers = new Map();
numbers.forEach((val)=> {
    duplicate_numbers.set(val, val*2);
})
Rabov
  • 244
  • 2
  • 3
-1

var numbers = [2, 4, 5, 37, 0];
var duplicate_numbers = {};

var result = numbers.forEach(num => {
  duplicate_numbers[num] = num * 2
});

console.log(duplicate_numbers);
Murtaza Hussain
  • 3,851
  • 24
  • 30