我有这个对象(它的属性比这里列出的要多得多,具有不同的值):
var dbValuesObj = {
//1. group of properties that I don't want to touch(I don't want to check the values for these)
rebateNetSaleMinAmt1: 500,
rebateNetSaleMaxAmt1: 400,
rebateAmtWoProd1: 0,
rebateAmtAllProd1: 200,
rebateAmtOneProd1: 0,
//2. group of properties that I want to change (I know exactly what is the list of the properties that I want to check and change their values, if they are equal to 0)
rebateNetSaleMinAmt2: 100,
rebateNetSaleMaxAmt2: 0,
rebateAmtWoProd2: 300,
rebateAmtAllProd2: 0,
rebateAmtOneProd2: 700
}
我需要从#2点更改对象属性的值为0的值。
因此,就我而言,我想将rebateNetSaleMaxAmt2和rebateAmtAllProd2更改为其他值。但是我不想从#1检查或更改属性
我尝试使用
for(var property in dbValuesObj)
但我检查了所有属性,但不想查看/更改/检查#1中的属性
最佳答案
我需要从#2点更改对象属性的值
值是0。所以我要更改
将rebateNetSaleMaxAmt2和rebateAmtAllProd2设置为不同的值。
您可以先将它们过滤掉
var requiredKeys = Object.keys( dbValuesObj ).filter( k => k.slice(-1) == "2" && dbValuesObj[k] == 0 );
现在您可以迭代此
requiredKeys
数组requiredKeys.forEach( function( key ){
console.log( key, dbValuesObj[key] )
})
对于您提供的数据,它将打印
“ rebateNetSaleMaxAmt2” 0
“ rebateAmtAllProd2” 0