阅读JS对象假设我们有Product.Name,Product.Desc和Product.Price不区分大小写
Product对象但我们无法控制的原因,我们可能会收到与小写变量产品对象(产品.name,Product.desc,Product.price)
有没有办法解释不区分大小写的变量?或者我必须做一些正则表达式.toLowerCase()
魔法?
想法?
阅读JS对象假设我们有Product.Name,Product.Desc和Product.Price不区分大小写
Product对象但我们无法控制的原因,我们可能会收到与小写变量产品对象(产品.name,Product.desc,Product.price)
有没有办法解释不区分大小写的变量?或者我必须做一些正则表达式.toLowerCase()
魔法?
想法?
我喜欢Alex Filatov的解决方案(+1)。然而,有时名称变体是事先知道的,或者您可能只想接受某些变化。在这种情况下,我发现它更容易做到这一点:
Product.Name = Product.Name || Product.name || default.Name;
只是或可接受的名称变化,并可选地添加一个默认值。
你可以添加一些代码来纠正对象的变量名:
Product.Name = (Product.Name === undefined ? Product.name : Product.Name);
然而,这会对对象中的所有变量来完成。
比较obj与prop的所有属性。
var objSetter = function(prop,val){
prop = (prop + "").toLowerCase();
for(var p in obj){
if(obj.hasOwnProperty(p) && prop == (p+ "").toLowerCase()){
obj[p] = val;
break;
}
}
}
似乎与这一个:http://stackoverflow.com/questions/21915927/how-to-return-a-result-from-json-with-case-insensitive-search-using-javascript –
http:///stackoverflow.com/questions/30498314/check-for-matching-key-in-object-regardless-of-capitalization – adeneo