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"]
... function(key, val) ...
而不是 ... function(val, key) ...
。 - Andrei StalbePrototypejs的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]
或者,如果您不想干扰Object
,也可以将上述方法添加到jQuery对象中:
$.values = function() { ... }
Object.values = x =>
Object.keys(x).reduce((y, z) =>
y.push(x[z]) && y, []);
注意: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中也能很好地工作。