Reputation: 15440
I want to traverse through JavaScript object's property
var obj =
{
a: 'value1',
b: 'value2',
c: 'value3',
d: 'value4'
};
for (var prop in obj) {
prop = 'xxx';
}
But the above code is not working. Can you help me how to do so ?
Upvotes: 60
Views: 97135
Reputation: 69
var temp= {"6s","vikash","500"};
console.log([...temp]); //["6s","vikash","500"]
Upvotes: -1
Reputation:
const obj = {
"abc":1, "def":2
}
for (let key in obj){
console.log(key+":"+obj[key])
}
Upvotes: 2
Reputation: 1930
Using ecmascript2017: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
const object1 = {
a: 'somestring',
b: 42
};
for (let [key, value] of Object.entries(object1)) {
console.log(`${key}: ${value}`);
}
Upvotes: 7
Reputation: 51
for(let i = 0; i < Object.entries(dog).length; i++){
this.temp.push(Object.entries(dog)[i]);
}
Upvotes: 2
Reputation: 5482
Here is how it is done using the ES5 - Object.keys() :
Object.keys(obj).forEach(function(key, idx) {
...
});
http://jsfiddle.net/magiccrafter/bvwenh5d/
Mozilla's docs: link
Upvotes: 27
Reputation: 1704
If you're in an ES6 friendly environment, you can also try using the for...of loop which is closer to your original attempt.
EDIT: As Caleb pointed out, for..of
is specific to collections with the Symbol.iterator property (e.g. not standard JS objects).
But I'm leaving this answer here in case anybody else finds it useful at some point to have it pointed out explicitly that a for..of
is not a great solution here.
let obj = {};
for (let prop of obj) { // This will throw an error
prop = 'xxx';
}
Reference: MDN - for...of
Upvotes: 1
Reputation: 2080
You should check that the property belongs to the object and not a prototype.
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
obj[prop] = 'xxx';
}
}
Upvotes: 96
Reputation: 44376
prop
will reference the property name, not its value.
for (var prop in obj) {
obj[prop] = 'xxx';
}
Also you may want to check if the property belongs to the object using hasOwnProperty
. It may happen that someone adds properties to the prototype and those are also iterated by for ... in
.
Upvotes: 85