prototypeJS ライブラリには、オブジェクト内の値の配列を返すメソッド Object.values() があります。
例えば:
var myObj = {
"key1" : "val1"
"key2" : "val2"
}
Object.values(myObj) //returns ["val1", "val2"]
同じことをするjQueryメソッドはありますか?
prototypeJS ライブラリには、オブジェクト内の値の配列を返すメソッド Object.values() があります。
例えば:
var myObj = {
"key1" : "val1"
"key2" : "val2"
}
Object.values(myObj) //returns ["val1", "val2"]
同じことをするjQueryメソッドはありますか?
直接行う方法はないと思いますが、次を使用できます$.map()
。
$.map(myObj, function(val, key) { return val; }); //returns ["val1", "val2"]
(ただし、コールバックが返された場合、null
またはundefined
特定のプロパティに対して、そのアイテムは新しい配列に含まれないことに注意してください。そのため、オブジェクトにそれらの値を持つプロパティがある場合は、別の方法で行う必要があります。コーディングは非常に簡単です。ただし、for..in
ループでスクラッチします。)
prototypejs のvalues
メソッドは、JavaScript の組み込みObject
オブジェクトを拡張します。あなたが同じことをするのを止めるものは何もありません:
Object.values = function(object) {
var values = [];
for(var property in object) {
values.push(object[property]);
}
return values;
}
var foo = {a:1, b:2, c:3};
console.log(Object.values(foo));
// [1, 2, 3]
または、改ざんしたくない場合は、上記のメソッドを jQuery オブジェクトに追加できますObject
。
$.values = function() { ... }
ES6 を使用すると、次のことができます。
Object.values = x =>
Object.keys(x).reduce((y, z) =>
y.push(x[z]) && y, []);
これは、オブジェクトの値を含む配列を返すだけです。JQuery や _ などは必要ありません。
注: Object.values()
現在、ES7 のドラフト段階です
babel の使用、インストール
Object.values/Object.entries
およびその他の機能をサポートしES2017
ます。
モジュールの推奨.babelrc
に従って、次のようにファイルを構成します。
{
"plugins": ["transform-runtime"],
"presets": ["es2017"]
}
Underscorejsには次の_.values
メソッドがあります。
_.values({one : 1, two : 2, three : 3}); => [1, 2, 3]
このライブラリは JQuery を非常によく拡張し、prototypejs で素晴らしく機能します。