nesneleri göster (dizi yerine)
Bir nesne var:
myObject = { 'a': 1, 'b': 2, 'c': 3 }
Doğal bir yöntem, aşağıdaki gibidir: kullanılan Array.prototype.map
benzer arıyorum
newObject = myObject.map(function (value, label) {
return value * value;
});
// newObject is now { 'a': 1, 'b': 4, 'c': 9 }
JavaScript nesneleri map
böyle bir işlevi var mı? (Node.JS yani çapraz tarayıcı sorunları hakkında umurumda değil bunu istiyorum.)
CEVAP
Yerli Object
nesne map
yok, ama buna ne demeli
Object.keys(myObject).map(function(value, index) {
myObject[value] *= 2;
});
console.log(myObject);
// => { 'a': 2, 'b': 4, 'c': 6 }
Ama kolayca bir nesne for ... in
kullanarak üzerinde yineleme.
for(var key in myObject) {
if(myObject.hasOwnProperty(key)) {
myObject[key] *= 2;
}
}
Güncelleme
Bir çok insan önceki yöntemler yeni bir nesne döndüren bir söz vardır, ancak bunun yerine bir nesne üzerinde işlem kendisi. Bu konuda olduğu gibi yeni bir nesne döndürür ve özgün nesne bırakan başka bir çözüm eklemek istedim:
var newObject = Object.keys(myObject).reduce(function(previous, current) {
previous[current] = myObject[current] * myObject[current];
return previous;
}, {});
console.log(newObject);
// => { 'a': 1, 'b': 4, 'c': 9 }
console.log(myObject);
// => { 'a': 1, 'b': 2, 'c': 3 }
Array.prototype.reduce
akıntıyla biraz önceki değerini birleştirerek tek bir değer için bir dizi azaltır. Zinciri boş bir nesne {}
tarafından başlatıldı. Her yineleme üzerinde myObject
yeni bir anahtar olarak değer yerlere eklenir.
JavaScript nesneleri bir dizi sıralama...
Nesne tarafından Ruby nesneleri bir di...
Açısal bir dizi nesneleri aramak istiy...
Neden jQuery Göster/Gizle:görüş yok ye...
Ruby, 'seçin birleştiren bir Dizi...