LoginSignup
0
1

More than 5 years have passed since last update.

Python3 のソースを JavaScript に移植する際にFunction作った

Last updated at Posted at 2018-10-14

備忘用

疲れた。。
ほとんどstackOverFlowからもらった。

values = dict((s, hoge) for s in foo)
こういうことができるPythonはズルいなと思いました。


// ### common function.
let zip = function(){
  let args = [].slice.call( arguments );
  let shortest = args.length == 0 ? [] : args.reduce( function( a, b ){
    return a.length < b.length ? a : b
  });

  return shortest.map( function( _, i ){
    return args.map( function( array ){ return array[i]} )
  });
}

let dict = function( ary ){
  let ret = {};
  for ( let key in ary ){
    ret[ ary[ key ][0] ] = ary[ key ][1];
  }
  return ret;
}

let dict_dual = function( ary, val ){
  let ret = {};
  for ( let key in ary ){
    ret[ ary[ key ] ] = val;
  }
  return ret;
}

let all = function( iterable ){
  if ( ! iterable ) return false;
  for ( let idx = 0; idx < iterable.length; ++idx ){
    if ( !iterable[ idx ] ) return false;
  }
  return true;
}

let set = function( ary ){
  return ary.reduce( function( a, val ){
    if ( a.indexOf( val ) === -1 ){
      a.push( val );
    }
    return a;
  }, [] );
}

let randomChoice = function( ary ){
  return ary[ Math.floor( Math.random() * ary.length ) ];
}

let len = function( obj ){
  if ( /\[object Array\]|\[object String\]/.test(
    Object.prototype.toString.call( obj ) )
  ){
    return obj.length;
  }
  throw "TypeError: arguments is illegal.";
}
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1