Reputation: 385
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
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
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
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
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
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