2016-03-30 22 views
0

İki nesneyi daha esnek bir şekilde karşılaştırmanın bir yolunu arıyorum.nodeJS nesnelerini joker karakterleri kullanarak karşılaştır

var alice = { 
       firstname:'Jan', 
       lastname:'Smith', 
       amount: 0, 
       friendList:[], 
       removeAmount : function(amount){ 
        this.amount = this.amount - amount; 
       } 
    }; 

, özellikleri sonra bu

var aliceWildCard = { 
      firstname: 'Jan', 
      lastname:*, 
      *, 
      removeAmount : function(amount){ 
       this.amount = this.amount - amount; 
      } 
}; 

* eşleşen özellik orada olmak zorunda ama değer önemli olmadığı anlamına olmalıdır: Böyle bir şey istemez. * "lastname: *," ifadesinden sonra ek özelliklerin bildirilmesine izin verdiğimi unutmayın.

Bunu yapmama izin veren herhangi bir modül var mı? Google onu denedim ama yararlı bir şey bulamadım.

cevap

1

Düşünebildiğim en yakın şey, nesne againlerini doğrulamak için bazı JSON şemasını kullanmaktır. Eğer şema doğrulayıcı o uygulamak belki nasıl örnek Sen Burada schema-validator

gibi nodejs modüllerin bir çift ile bunu yapabilirsiniz (bu istediğini işlevselliğin tüm olmadığını unutmayın ama sence inanıyorum) bir şey:

var Validator = require('schema-validator'); 

var aliceSchema = { 
    type: Object, 

    firstname: { 
     type: String, 
     required: true, 
     test: /^Jan$/i 
    }, 

    lastname: { 
     type: String, 
     required: true 
    }, 

    removeAmount: { 
     type: Function, 
     required: true 
    } 
} 


var aliceValidator = new Validator(aliceSchema); 
aliceValidator.debug = true; 

var result = aliceValidator.check({ 
    firstname: 'Jan', 
    lastname: 'Smith', 
    removeAmount: function() { } 
}); 

console.log(result); 

kod-snippet'iyle sorun aliceWildcard nesne bile çünkü joker gösterimin Javascript tarafından ayrıştırılamaz olmasıdır. Nesnenin içeriğini (şema-validator gibi) doğrulamak için başka bir yol bulmak zorunda kalacaksınız.

İlgili konular