牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Javascript

ギター指板の音名をランダムに表示するメモ

音名ランダム表示 ソースコード 指板の音名 参考リンク 音名ランダム表示 C $(function(){ var tempo = 70; var delay = 60 / tempo * 1000; function random(arr) { return arr[Math.floor(Math.random() * arr.length)]; } function display_key() { var k…

ギター指板の音名を覚えるためにリロードするとJavascriptでランダムに音名を表示してみるメモ

(追記2017-10-16)いまいち使い勝手が悪いので もっとシンプルなの書いた 音名 テンポ 指板 ソースコード 音名 テンポ 元ネタの動画 参考リンク 音名 var keys = ['C', 'C#/Db', 'D', 'D#/Eb', 'E', 'F', 'F#/Gb', 'G', 'G#/Ab', 'A', 'A#/Bb', 'B']; funct…

Moment.js で今日と1週間後と1週間前の日付を取ってみるメモ

> moment().format('YYYY-MM-DD'); // 今日 "2017-08-23" > moment().add(7, 'days').format('YYYY-MM-DD'); // 7日後 "2017-08-30" > moment().add(-7, 'days').format('YYYY-MM-DD'); // 7日前 "2017-08-16" リンク Moment.js | Docs #add

Eslint で1行のみ error/warning を無視するメモ

よく忘れるのでメモ 1行のみ alert('foo'); // eslint-disable-line no-alert ファイル全体 ちなみにファイル内で無視する場合は最初の行に書く /* eslint-disable no-alert, no-console */ 参考リンク Configuring ESLint - ESLint - Pluggable JavaScript …

Webpack の bable の設定で `const { value, ...inputProps } = input` みたいな Rest Properties を使えるようにするメモ

よびかたがよくわからないんだけどこんなやつ let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; 設定を追加しないとビルドで失敗する やり方 webpack まわりは省く(動いている前提) ライブラリインストール $ npm install -D babel-preset-stage-2 webpa…

Javascript のオブジェクトで特定のkey以外ほしい場合のメモ

いつも悩むのでメモ const data = { last_name: '夏目', first_name: '漱石', created_at: "2017-03-21T12:00:00.000000", updated_at: "2017-03-21T12:00:00.000000", }; const IGNORE_KEYS = [ 'created_at', 'updated_at', ]; const filterIgnoreObject =…

Javascript でカタカナ->ひらがな変換とか全角英数->半角英数に変換とかのメモ

カタカナ->ひらがな変換 const katakanaToHiragana = (katakana) => { return katakana.replace(/[\u30a1-\u30f6]/g, (match) => { const chr = match.charCodeAt(0) - 0x60; return String.fromCharCode(chr); }); }; console.info(katakanaToHiragana('カ…

Javascript のソースコードを prettier で git commit 時に自動で整形してみるメモ

prettier Golang の gofmt みたいなやつの Javascript 版。 インストール $ npm init -y $ npm install -D prettier lint-staged husky package.json precommit と lint-staged を追加 { "scripts": { "precommit": "lint-staged" }, "lint-staged": { "*.js…

郵便番号を入力してボタンを押すと住所を補完するやつのメモ

<html lang="ja"> <head> <meta charset="utf-8"> <title>sample</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script src="https://ajaxzip3.github.io/ajaxzip3.js" charset="UTF-8"></script> <script> $(function() { $('.js-button').click(f…</meta></head></html>

Javascript で url のパラメータを取るメモ

(es5) こういうURL で next とかの値を取りたい https://www.google.co.jp/?prev=next=http://foo.com&next=http://bar.com source code function parseParameter(key) { var val = null; var params = []; var items = location.search.substr(1).split('&'…

eslintでES2016の可変長引数が引っかからないようにするメモ

例 const { hoge, ...props } = this.props; ...props のとこで Parsing error: Unexpected token ... になる .esrintrc "parserOptions": { "ecmaVersion": 6, "ecmaFeatures": { "experimentalObjectRestSpread": true } }, これで error 消える 参考 java…

javascript の for...of と for..in のメモ

'use strict'; const any = (arr) => { for (let value of arr) { if (value) { return true; } } return false; }; console.log(any([false, false, false])); console.log(any([false, true, false])); //=> false //=> true const object = {foo: [false,…

es2015 のクラスで継承しつつ静的メソッドの中でインスタンス作成したりのメモ

(node v4.4.7) 'use strict'; class Hoge { constructor() { this.price = 50; } static getInstance(object) { const instanse = new this(); Object.keys(object).map(key => { instanse[key] = object[key]; }); return instanse; } } class Fuga extends…

ESLint v3.x で React 使う場合の設定メモ

2016-08-04 Thu: 追記・修正 (eslint v3.1.1) Install $ node install -g eslint eslint-plugin-react .eslintrc { "plugins": ["react"], "extends": ["eslint:recommended", "plugin:react/recommended"], "env": { "es6": true, "browser": true, "node":…

ES6のデフォルト引数の使い方を勘違いしていたメモ

ES6 function hoge(a='hoge', b='fuga') { console.log(a + b); } hoge(); //-> hogefuga hoge('foo', 'bar'); //-> foobar hoge('foo', b='bar'); //-> SyntaxError 実行時に b= とか書くとエラーになる ちなみに Python def hoge(a='hoge', b='fuga'): pri…

Javascript で配列や連想配列を何で回すのがいいのか混乱するので for, for...in, forEach, for...of などいじってみるメモ

(node v4.2.4) その1 'use strict'; let arr = [{id: 1}, {id: 2}, {id: 3}]; for (let x in arr) { console.log(x); } console.log('----'); arr.foo = "hello"; console.log(arr); console.log('----'); for (let x in arr) { console.log(x); } console.…

Emacs で Javascript の賢い補完するメモ

(emacs24.4) 使うパッケージ M-x package-install などで下記をインストール js2-mode auto-complete tern tern-auto-complete npm 下記もインストール $ npm install -g tern 設定 tern サーバーを利用すると .term-port ファイルが作られてしまうので、作…

Javascript の連想配列で key に数値を入れると文字列になるメモ

$ node > var a = {1: 'a', 2: 'b', 3: 'c'} undefined > a { '1': 'a', '2': 'b', '3': 'c' } > Object.keys(a)[0] '1' > typeof Object.keys(a)[0] 'string' ちなみに Python だと数値のまま $ ipython In [1]: a = {1: 'a', 2: 'b', 3: 'c'} In [2]: a Ou…

Javascript で filter の書き方のメモ

ES6 'use strict'; var family = [ {'name':'Namihei', 'age': 54}, {'name':'Masuo', 'age': 28}, {'name':'Katsuo', 'age': 11}, {'name':'Tarao', 'age': 3} ]; var family1 = family.filter(function(person) { return person.age < 30; }); var family2…

Javascript で配列を逆順にするメモ

> var a = [1, 2, 3] undefined > a [1, 2, 3] > a.reverse(); [3, 2, 1] > a [3, 2, 1] > a.slice().reverse(); [1, 2, 3] > a [3, 2, 1] a.reverse() で破壊的 a.slice().reverse() で非破壊的 参考 Reverse array in Javascript without altering the ori…

関数呼び出しタイミングのメモ

いちおう想定通りの結果になるか確認してみた javascript (es2015) 'use strict'; function foo(func) { console.log('foo!'); func(); console.log('end foo!'); } foo(() => {console.log('bar!');}); //=> foo! //=> bar! //=> end foo! python 2.7.x #!/…

Emacs と ctags のタグジャンプを ES2015 syntax に対応させるメモ

設定 参考リンクから必要そうなとこを抜き出してコピペ ~/.ctags --exclude=.git --exclude=.hg --exclude=log --exclude=tmp --languages=-javascript --langdef=js --langmap=js:.js --langmap=js:+.jsx --regex-js=/[ \t.]([A-Z][A-Z0-9._$]+)[ \t]*[=:][…

Javascript で sleep する関数メモ

ReactJS のサンプル書いてて ajax の get で遅延で値を取るような擬似的な処理で setTimeout() 使うとうまくいかなかったけど while 使うやつで値取れた。(と思ったけど関係なかったっぽい) function sleep(msec){ let now = new Date().getTime(); while(…

Javascript で配列の重複を除去する

var array = [1,2,2,3,3,3]; // ES5.1? var unique = function(arr) { return arr.filter(function (x, i, self) { return self.indexOf(x) === i; }); }; console.log(unique(array)); //-> [ 1, 2, 3 ] // ES6 console.log(Array.from(new Set(array))); …

Javascript で配列かどうか調べるメモ

instanceof を使えばよいの? > var friend = JSON.parse('{ "id": 1, "name": "のび太" }') > var friends = JSON.parse('[ { "id": 2, "name": "ジャイアン" }, { "id": 3, "name": "スネオ" }]') > friend instanceof Array false > friends instanceof A…

Google Chrome の Console で外部ライブラリの KeyMirror を試してみるメモ

> var ele = document.createElement("script"); ele.type = "text/javascript"; ele.src = "http://cdn.rawgit.com/STRML/keyMirror/master/index.js"; document.body.appendChild(ele); > var COLORS = keyMirror({blue: null, red: null}); undefined > C…

ReactJS と Browserify と babelify のメモ

前回『ReactJS と Browserify と reactify のメモ』 の続き。 なにやら reactify から babelify に乗り替えた方が良さげ みたいなので変更する。 あと watch もできるようにする。 変更するコード gulpfile.js var babelify = require('babelify'); var brow…

ReactJS と Browserify と reactify のメモ

簡単にできると思ってたら Browserify で ./jsx/**/*.jsx みたいなディレクトリ以下のファイルを指定するのに悩んだんのでメモ ソースコード # ファイル構成 . ├── gulpfile.js ├── index.html ├── jsx │ └── yo.jsx └── package.json gulpfile.js var brows…

Javascript の連想配列で key に変数を使うと展開されない件のメモ

連想記憶のkeyは変数が展開されない { foo: 'bar' } が取れると期待したら{ select: 'bar' }になってぎょぎょぎょってなった(´・ω・`) var select = 'foo'; var fanc = function(obj) { console.log(obj); }; fanc({select: 'bar'}); //-> { select: 'bar' } …

Javascript で配列を結合するメモ

var a1; var a2; var a3; var b1; var b2; var b3; var i; a1 = [1,2,3]; b1 = [4,5,6]; for (i = 0; i < b1.length; i++) { a1.push(b1[i]); } console.log(a1); //-> [ 1, 2, 3, 4, 5, 6 ] a2 = [1,2,3]; b2 = [4,5,6]; console.log(a2.concat(b2)); //-> …