Ara*_*han 1 html javascript json
考虑像这样的JSON
{
"products": {
"c1": {
"stock": 100
},
"c2": {
"stock": 200
},
"c3": {
"stock": 300
},
"c4": {
"stock": 400
},
"c5": {
"stock": 500
}
}
}
Run Code Online (Sandbox Code Playgroud)
为了找到最少的库存,我写了这样的代码
var minStock=Math.min(
products.c1.stock,
products.c2.stock,
products.c3.stock,
products.c4.stock,
products.c5.stock
)
console.log(minStock);
Run Code Online (Sandbox Code Playgroud)
现在我想知道基于库存值的c1,c2,c3,c4或c5是最小的,在这种情况下说
console.log("c1 is minimum with stock 100");
Run Code Online (Sandbox Code Playgroud)
这是一个解决方案Array#reduce().它也返回相同的引用:
var object = { "products": { "c1": { "stock": 200 }, "c2": { "stock": 200 }, "c3": { "stock": 300 }, "c4": { "stock": 400 }, "c5": { "stock": 500 } } },
result = function (o) {
var keys = Object.keys(o);
return keys.reduce(function (r, k) {
if (o[k].stock < o[r[0]].stock) {
return [k];
}
if (o[k].stock === o[r[0]].stock) {
r.push(k);
}
return r;
}, [keys.shift()]);
}(object.products);
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
document.write(result.join(', ') + ' ' + (result.length === 1 ? 'is' : 'are') + ' minimum with stock à '+ object.products[result[0]].stock);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |