Skip to main content
deleted 282 characters in body
Source Link
janos
  • 111.7k
  • 15
  • 152
  • 391

This is not bad at all. A few things can be simplified a bit.


Instead of iterating this way:

for(var i = 0; i < arr.length; i++){

You can do it like this:

for (var i in arr) {

The i loop variable will take on exactly the same values as your original loop, but this writing style is shorter, and more natural.


When checking if arr[i] exists in numMapping:

if(numMapping[arr[i]] === undefined){

A simpler and more natural way is this:

if (!(arr[i] in numMapping)) {

As a tiny optimization, instead of this:

if (!(arr[i] in numMapping)) {
    numMapping[arr[i]] = 0;
}
numMapping[arr[i]] += 1;

This is somewhat better:

if (!(arr[i] in numMapping)) {
    numMapping[arr[i]] = 1;
} else {
    numMapping[arr[i]] += 1;
}

Because this way you save one extra lookup of arr[...] and also numMapping[...], by directly assigning 1 instead of 0 and then incrementing later.


At a few places the indentation was off, and I would recommend a bit more generous spaces in if(...){ and for(...){ statements, use if (...) { and for (...) { instead (like in my examples above).

This is not bad at all. A few things can be simplified a bit.


Instead of iterating this way:

for(var i = 0; i < arr.length; i++){

You can do it like this:

for (var i in arr) {

The i loop variable will take on exactly the same values as your original loop, but this writing style is shorter, and more natural.


When checking if arr[i] exists in numMapping:

if(numMapping[arr[i]] === undefined){

A simpler and more natural way is this:

if (!(arr[i] in numMapping)) {

As a tiny optimization, instead of this:

if (!(arr[i] in numMapping)) {
    numMapping[arr[i]] = 0;
}
numMapping[arr[i]] += 1;

This is somewhat better:

if (!(arr[i] in numMapping)) {
    numMapping[arr[i]] = 1;
} else {
    numMapping[arr[i]] += 1;
}

Because this way you save one extra lookup of arr[...] and also numMapping[...], by directly assigning 1 instead of 0 and then incrementing later.


At a few places the indentation was off, and I would recommend a bit more generous spaces in if(...){ and for(...){ statements, use if (...) { and for (...) { instead (like in my examples above).

This is not bad at all. A few things can be simplified a bit.


When checking if arr[i] exists in numMapping:

if(numMapping[arr[i]] === undefined){

A simpler and more natural way is this:

if (!(arr[i] in numMapping)) {

As a tiny optimization, instead of this:

if (!(arr[i] in numMapping)) {
    numMapping[arr[i]] = 0;
}
numMapping[arr[i]] += 1;

This is somewhat better:

if (!(arr[i] in numMapping)) {
    numMapping[arr[i]] = 1;
} else {
    numMapping[arr[i]] += 1;
}

Because this way you save one extra lookup of arr[...] and also numMapping[...], by directly assigning 1 instead of 0 and then incrementing later.


At a few places the indentation was off, and I would recommend a bit more generous spaces in if(...){ and for(...){ statements, use if (...) { and for (...) { instead (like in my examples above).

Source Link
janos
  • 111.7k
  • 15
  • 152
  • 391

This is not bad at all. A few things can be simplified a bit.


Instead of iterating this way:

for(var i = 0; i < arr.length; i++){

You can do it like this:

for (var i in arr) {

The i loop variable will take on exactly the same values as your original loop, but this writing style is shorter, and more natural.


When checking if arr[i] exists in numMapping:

if(numMapping[arr[i]] === undefined){

A simpler and more natural way is this:

if (!(arr[i] in numMapping)) {

As a tiny optimization, instead of this:

if (!(arr[i] in numMapping)) {
    numMapping[arr[i]] = 0;
}
numMapping[arr[i]] += 1;

This is somewhat better:

if (!(arr[i] in numMapping)) {
    numMapping[arr[i]] = 1;
} else {
    numMapping[arr[i]] += 1;
}

Because this way you save one extra lookup of arr[...] and also numMapping[...], by directly assigning 1 instead of 0 and then incrementing later.


At a few places the indentation was off, and I would recommend a bit more generous spaces in if(...){ and for(...){ statements, use if (...) { and for (...) { instead (like in my examples above).