如何检查javascript对象中的值?
问题描述:
我有一个包含产品名称和相应产品代码的javscript对象。代码是独一无二的。如何检查javascript对象中的值?
var products = {
"Pineapple":38,
"Apple":110,
"Pear":109
};
如果我想知道一个产品的代码我可以做
var pineapplecode = products["Pineapple"];
我如何检查是否有一个给定数量的产品,如果打印呢?还是我必须/应该更改数据的保存方式?
答
我想你基本上是问我是否可以检查其他方式,即通过传递值检查密钥。
当然可以,
无论是通过所有键和值迭代,检查值存在,如果该值存在
改变保存方式终于回归的关键按产品数量而不是产品名称
这里的数据,索引是代码以一种形式转化为另一种
var newProducts = {};
for(var prodName in products)
{
newProducts[ products[ prodName ] ] = prodName;
}
console.log(newProducts);
这里是检查一个特定的值
var valueToCheck = "110";
var prodNameToFind = "";
for(var prodName in products)
{
if (products[ prodName ] == valueToCheck)
{
prodNameToFind = prodName;
}
}
console.log(prodNameToFind);
答
只是遍历键属性值并打破迭代,如果找到Array.prototype.some()
some()
方法测试数组中的某个元素是否通过了由提供的函数实现的测试。
var products = {
Pineapple: 38,
Apple: 110,
Pear: 109
};
function getProduct(code) {
var product;
Object.keys(products).some(function (k) {
if (products[k] === code) {
product = k;
return true;
}
});
return product;
}
document.write(getProduct(109));
有一个在给定的对象没有键'product' .. – Rayon
你会通过寻找代码值的所有属性都循环。你可以有两个*对象,一个从名字到代码的映射,另一个从代码到名字的映射。 – Pointy