ck_*_*ck_ 25 javascript arrays
是否有任何捷径可以在javascript中完成相当于PHP的array_flip,还是必须通过暴力循环来完成?
它必须用于几十个阵列,所以即使很小的加速也可能会加起来.
Dan*_*ton 22
不要认为有一个内置.但是这里的示例实现:).
function array_flip( trans )
{
var key, tmp_ar = {};
for ( key in trans )
{
if ( trans.hasOwnProperty( key ) )
{
tmp_ar[trans[key]] = key;
}
}
return tmp_ar;
}
Run Code Online (Sandbox Code Playgroud)
使用纯ES5的功能形式.对于旧版浏览器,请使用es5-shim.
var example = {a: 'foo', b: 'bar'};
var flipped = Object.keys(example) //get the keys as an array
.filter(example.hasOwnProperty.bind(example)) //safety check (optional)
.reduce(function(obj, key) { //build up new object
obj[example[key]] = key;
return obj;
}, {}); //{} is the starting value of obj
// flipped is {foo: 'a', bar: 'b'}
Run Code Online (Sandbox Code Playgroud)
使用下划线 _.invert
_.invert([1, 2])
//{1: '0', 2: '1'}
_.invert({a: 'b', c: 'd'})
//{b: 'a', d: 'c'}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18077 次 |
| 最近记录: |