Javascript jQuery中的Object.values()
prototypeJS库有一个方法Object.values(),它返回一个对象中的值数组 例如:Javascript jQuery中的Object.values(),javascript,jquery,prototypejs,Javascript,Jquery,Prototypejs,prototypeJS库有一个方法Object.values(),它返回一个对象中的值数组 例如: 有没有一种jQuery方法可以做同样的事情?我认为没有一种方法可以直接做这件事,但您可以使用: (请注意,如果回调为给定属性返回null或undefined,则该项将不包括在新数组中,因此如果对象可能具有具有这些值的属性,则必须以另一种方式执行。不过,使用循环从头开始编写代码非常容易。)prototypejs'值方法扩展了JavaScript的内置对象对象。没有什么能阻止你这么做: Object.
有没有一种jQuery方法可以做同样的事情?我认为没有一种方法可以直接做这件事,但您可以使用:
(请注意,如果回调为给定属性返回
null
或undefined
,则该项将不包括在新数组中,因此如果对象可能具有具有这些值的属性,则必须以另一种方式执行。不过,使用循环从头开始编写代码非常容易。)prototypejs'值
方法扩展了JavaScript的内置对象
对象。没有什么能阻止你这么做:
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对象中:
$.values = function() { ... }
具有<代码>\值方法:
..values({1:1,2:2,3:3});=>[1,2,3]
这个库非常好地扩展了JQuery,并且在prototypejs中工作得非常出色。使用ES6,您可以执行以下操作:
Object.values = x =>
Object.keys(x).reduce((y, z) =>
y.push(x[z]) && y, []);
{
"plugins": ["transform-runtime"],
"presets": ["es2017"]
}
这只是返回一个包含对象值的数组。不需要JQuery、u或其他任何东西
注意:
Object.values()
目前正在起草ES7
使用巴别塔,安装
- 巴别塔-preset-es2017
- 巴贝尔插件转换运行时
Object.values/Object.entries
以及其他ES2017
功能
根据模块的建议,使用以下内容配置.babelrc
文件:
Object.values = x =>
Object.keys(x).reduce((y, z) =>
y.push(x[z]) && y, []);
{
"plugins": ["transform-runtime"],
"presets": ["es2017"]
}
不,没有。但是它很容易创建。应该是
。。。功能(键,val).
而不是。。。函数(val,键).
@AndreiStalbe-不,不应该。检查,太棒了!这太完美了!非常感谢你!它非常完美,因为您不需要向项目中添加一个全新的库。