次のような JavaScript のオブジェクトがあります:
{ "a":4, "b":0.5 , "c":0.35, "d":5 }
すべてのプロパティをループせずに、プロパティの最小値と最大値をすばやく取得する方法はありますか? オブジェクトが非常に大きく、2 秒ごとに最小値と最大値を取得する必要があるためです。(オブジェクトの値は変化し続けます)。
ベストアンサー1
アップデート:最新バージョン (ES6+)
let obj = { a: 4, b: 0.5 , c: 0.35, d: 5 };
let arr = Object.values(obj);
let min = Math.min(...arr);
let max = Math.max(...arr);
console.log( `Min value: ${min}, max value: ${max}` );
元の回答:
これを試して:
let obj = { a: 4, b: 0.5 , c: 0.35, d: 5 };
var arr = Object.keys( obj ).map(function ( key ) { return obj[key]; });
その後:
var min = Math.min.apply( null, arr );
var max = Math.max.apply( null, arr );
ライブデモ: http://jsfiddle.net/7GCu7/1/