anaximander
anaximander

Reputation: 385

Change properties of array

Have an array filled with objects and number properties.

   var fruitNames = [];


   var fruit = [{"fruit": 1},{"fruit": 0},{"fruit": 3},
               {"fruit": 2},{"fruit": 1},{"fruit": 1},
               {"fruit": 2},{"fruit": 2},{"fruit": 1}];

How can i turn the numbers into names for example 0 = Pear, 1 = Banana, 2 = Apple, 3 = Orange and put them into the fruitNames array with the names as strings depending on the number property in the fruit array?

Upvotes: 0

Views: 97

Answers (5)

Saurabh Yadav
Saurabh Yadav

Reputation: 3386

var mapping = {"0": "Pear", "1": "Banana", "2":"Apple", "3":"Orange"};
var fruit = [{"fruit": 1},{"fruit": 0},{"fruit": 3},
               {"fruit": 2},{"fruit": 1},{"fruit": 1},
               {"fruit": 2},{"fruit": 2},{"fruit": 1}];
               
var updated = fruit.map(function(name) {
 return {'fruit':mapping[name['fruit']]}; 
});

console.log(updated);

Upvotes: 2

Илья Зелень
Илья Зелень

Reputation: 8088

enter image description here

Benchmark: https://jsperf.com/change-properties-of-array/1

var arr = ['Pear', 'Banana', 'Apple', 'Orange']
var fruitNames = [];
var fruit = [{"fruit": 1},{"fruit": 0},{"fruit": 3},
               {"fruit": 2},{"fruit": 1},{"fruit": 1},
               {"fruit": 2},{"fruit": 2},{"fruit": 1}];
               
for (let obj of fruit) {
  fruitNames.push(arr[obj.fruit])
}

console.log(fruitNames)

or

var arr = ['Pear', 'Banana', 'Apple', 'Orange']
var fruitNames = [];
var fruit = [{"fruit": 1},{"fruit": 0},{"fruit": 3},
               {"fruit": 2},{"fruit": 1},{"fruit": 1},
               {"fruit": 2},{"fruit": 2},{"fruit": 1}];
               
for (let obj of fruit) {
  fruitNames.push({'fruit': arr[obj.fruit]})
}

console.log(fruitNames)

Upvotes: 0

ryan
ryan

Reputation: 9

var fruitNames = ["Pear", "Banana", "Apple", "Orange"];
var fruit = [{"fruit": 1},{"fruit": 0},{"fruit": 3},
             {"fruit": 2},{"fruit": 1},{"fruit": 1},
             {"fruit": 2},{"fruit": 2},{"fruit": 1}];
fruit.forEach(function(item) {
  item["fruit"] = fruitNames[item["fruit"]]
});

Upvotes: 0

Alex Alexiuc
Alex Alexiuc

Reputation: 73

var fruitNames = [];


var fruit = [{"fruit": 1},{"fruit": 0},{"fruit": 3},
            {"fruit": 2},{"fruit": 1},{"fruit": 1},
            {"fruit": 2},{"fruit": 2},{"fruit": 1}];

result = fruit.map(elm => {
  name = Object.keys(elm)[0];
  return { [elm[name]]: name };
});
console.log(result);

Upvotes: 0

NicossB
NicossB

Reputation: 418

var fruitNames = [];
var fruit = [
  {"fruit": 1},
  {"fruit": 0},
  {"fruit": 3},
  {"fruit": 2},
  {"fruit": 1},
  {"fruit": 1},
  {"fruit": 2},
  {"fruit": 2},
  {"fruit": 1}
 ];
var matchingFruits = {
  0: "Pear",
  1: "Banana",
  2: "Apple",
  3: "Orange",
}

const output = fruit.map(function(e) {
  return {
    'fruit':matchingFruits[e['fruit']]
  }; 
});

console.log(output);

Upvotes: 0

Related Questions