我有一個包含產品名稱和相應產品代碼的javscript對象。代碼是獨一無二的。如何檢查javascript對象中的值?
var products = {
"Pineapple":38,
"Apple":110,
"Pear":109
};
如果我想知道一個產品的代碼我可以做
var pineapplecode = products["Pineapple"];
我如何檢查是否有一個給定數量的產品,如果打印呢?還是我必須/應該更改數據的保存方式?
我有一個包含產品名稱和相應產品代碼的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