ind*_*man 8 javascript jquery prototypejs
prototypeJS库有一个方法Object.values(),它返回一个对象中的值数组.
例如:
var myObj = {
"key1" : "val1"
"key2" : "val2"
}
Object.values(myObj) //returns ["val1", "val2"]
Run Code Online (Sandbox Code Playgroud)
是否有一个jQuery方法做同样的事情?
nnn*_*nnn 12
我不认为有一种方法可以直接执行,但您可以使用$.map()
:
$.map(myObj, function(val, key) { return val; }); //returns ["val1", "val2"]
Run Code Online (Sandbox Code Playgroud)
(注意,如果回调返回,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]
Run Code Online (Sandbox Code Playgroud)
另外,如果您不想篡改,可以将上述方法添加到jQuery对象中Object
:
$.values = function() { ... }
Run Code Online (Sandbox Code Playgroud)
使用 ES6,您可以执行以下操作:
Object.values = x =>
Object.keys(x).reduce((y, z) =>
y.push(x[z]) && y, []);
Run Code Online (Sandbox Code Playgroud)
这只是返回一个包含对象值的数组。不需要 JQuery、_ 或其他任何东西。
注意: Object.values()
目前处于 ES7 草案中
使用babel,安装
提供对Object.values/Object.entries
以及其他ES2017
功能的支持。
根据模块的建议,.babelrc
使用以下内容配置文件:
{
"plugins": ["transform-runtime"],
"presets": ["es2017"]
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26067 次 |
最近记录: |