タグ

ブックマーク / qiita.com/cocottejs (6)

  • (Tips)オブジェクトのソート。複数の数値プロパティ - Qiita

    僕がjavascriptを触りたての遥か昔にどこかで見たソート処理 ちょっと感心したのを覚えてる (課題) line,columnで昇順にソートする var errors = [ {line: 1, column: 30, message: 'syntax error'}, {line: 2, column: 21, message: 'too long'}, {line: 2, column: 10, message: 'format invalid'}, {line: 1, column: 5, message: 'delimiter error'} ]; // ここにソート処理をかけ // 結果 // errors -> [ // {line: 1, column: 5, message: 'delimiter error'}, // {line: 1, column: 30, me

    (Tips)オブジェクトのソート。複数の数値プロパティ - Qiita
  • アルファベットから4つランダム取り出す(ワンライナー) - Qiita

    'abcdefghijklmnopqrstuvwxyz'.split('').sort(function(){return Math.random()-0.5;}).slice(0,4) Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    アルファベットから4つランダム取り出す(ワンライナー) - Qiita
  • for-inとObject.keysの違いを正しく知る - Qiita

    はじめに オブジェクトのキーを取得する方法には、次の2つの方法が知られています。 それは、for-inで繰り返し処理による取得とObject.keysによる取得です。 実はこれいつでも同じ処理をするものだと思っていませんか? for (var p in obj) { if (obj.hasOwnProperty(p)) { //do something } } Object.keys(obj).forEach(function (p) { //do something }) 実は常に同じとは限りません さてクイズです。 どのような時に同じにならないのかを考えてみてください。 正解はこのあと ・ ・ ・ 早速、検証コードから見る 次のコードはまだ理解しなくいいですが、まずは実行した結果の違いをよく見てください。 function showProperties (obj) { // 検証1 -

    for-inとObject.keysの違いを正しく知る - Qiita
  • 「積み木の水槽」をjavascriptで解いてみた - Qiita

    何日か前に出題されていたものをjsでも書いてみました。 みなさんの回答を、投稿してからみようと思うので 同じや、さらに良いロジックがあるかもしれませんが、とりあえず。 左右から見える壁の高さと奥行きを調査し、見えない部分に水が入っていると考えています var test = function (input, output) { // 0が入っているところで分けて別々に計算して足す var blocks = input.split('0') , water = 0; // 分けたブロックごとに計算 blocks.forEach(function (data) { var block = data.split('') // 左影 , max1 = 0 , lsharp = block.reduce(function (x, y) { max1 = Math.max(y * 1, max1); x

    「積み木の水槽」をjavascriptで解いてみた - Qiita
    typista
    typista 2013/09/13
    「積み木の水槽」をjavascriptで解いてみた
  • 配列の重複をはじく、もしくは重複を取り出す - Qiita

    重複を削除する方法はいくつか方法があるみたいですが、 filterを使用する事で非常に楽に実現出来ます var a = [1,2,3,3,2,2,5]; // 重複を削除したリスト var b = a.filter(function (x, i, self) { return self.indexOf(x) === i; }); // 重複のみをリスト var c = a.filter(function (x, i, self) { return self.indexOf(x) !== self.lastIndexOf(x); }); // 重複を検出したものを重複しないでリスト var d = a.filter(function (x, i, self) { return self.indexOf(x) === i && i !== self.lastIndexOf(x); }); co

    配列の重複をはじく、もしくは重複を取り出す - Qiita
    typista
    typista 2013/09/12
    配列の重複をはじく、もしくは重複を取り出す
  • javascriptで人間らしい等価演算子 - Qiita

    (追記) コメントで指摘のあった循環参照で無限ループする問題を解決しました そのほかにも細かなバグが有ったので修正しています。 githubに公開しましたので、実際のソースはそちらで確認してください Git 結局underscoreのisEqualとほぼ同じ動きになっています。 ただ、一部Invaild Dateで結果が異なっている等あるみたいですが! == javascriptの等価演算子では==と===が存在しますが、 人間らしい演算子を行うcompare関数を作成してみました。 実際に、私も実務でテストで使用しています。 例えば、{a: 1} == {a: 1} としても {a: 1} === {a: 1} としても結果はfalseです 流石に、new Date('2013-9-1') == new Date('2013-9-1') くらいはtrueかなと思ってもやっぱりfalseで

    javascriptで人間らしい等価演算子 - Qiita
    typista
    typista 2013/09/11
    javascriptで人間らしい等価演算子
  • 1