Javascript jQuery中的Object.values()

Javascript jQuery中的Object.values(),javascript,jquery,prototypejs,Javascript,Jquery,Prototypejs,prototypeJS库有一个方法Object.values(),它返回一个对象中的值数组 例如: 有没有一种jQuery方法可以做同样的事情?我认为没有一种方法可以直接做这件事,但您可以使用: (请注意,如果回调为给定属性返回null或undefined,则该项将不包括在新数组中,因此如果对象可能具有具有这些值的属性,则必须以另一种方式执行。不过,使用循环从头开始编写代码非常容易。)prototypejs'值方法扩展了JavaScript的内置对象对象。没有什么能阻止你这么做: Object.

prototypeJS库有一个方法Object.values(),它返回一个对象中的值数组

例如:


有没有一种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-不,不应该。检查,太棒了!这太完美了!非常感谢你!它非常完美,因为您不需要向项目中添加一个全新的库。