こんにちは、AIQ株式会社のフロントエンドエンジニアのまさぴょんです! 今回は、JavaScriptで日付が新しい順・古い順, あいうえお順のSort処理を実装する機会があったので、その知見と学びについて共有します。 前提: 基本のSort処理Logicを振り返る 本題の日付が新しい順(降順)・古い順(昇順), あいうえお順のSort処理の実装についての解説に入る前に、基本のSort処理Logicを振り返りましょう。 昇順と降順に関しては、以前にこちらの記事で説明しています。 JavaScriptで配列の要素を昇順や降順での並び替え・Sort処理するには、次のどちらかのメソッドを使用すればOKです。 Array.prototype.sort() 指定配列をSortします(破壊的変更) Array.prototype.toSorted() 指定配列のコピーをSortして実行結果として、返却し
はじめに 初投稿です。 知ってたら便利になる小技が無かったのでまとめました。 「小技が知りたい...だけど検索しても出てこない...!」 そういう時に役立ちます。 比較的古いバージョンのJSでは一部の小技が使えないかもしれません。 随時追加予定です。他に小技をご存じの方はコメント欄にGO。 おことわり この記事は、あくまで"こんなやり方もあるよ"と紹介しているだけなので、何でもかんでもこれらの小技を使うと、かえってコードの可読性を下げる可能性があります。コードサイズと可読性を天秤にかけてどちらが良いかを都度確認しましょう。 記事内の間違った部分の指摘等はこの記事のコメントや編集リクエストでして下さい。 当方コードゴルファーなので、バイト数短縮小技も入れていることをご了承ください(一応該当する節には*をつけています)。 配列 配列の重複した値を削除1 const meta = ["foo",
[ { "id": "1", "title": "【参加メモ】 『SCRUM BOOT CAMP THE BOOK 増補改訂版』読書会 第1回目", "date": "2021/10/25", "url": "https://note.com/maiamea/n/n5cd7a8c0cbf7" }, { "id": "2", "title": "【参加メモ】 『SCRUM BOOT CAMP THE BOOK 増補改訂版』読書会 第2回目", "date": "2021/10/27", "url": "https://note.com/maiamea/n/n792779910e0b" }, { "id": "3", "title": "【参加メモ】 『SCRUM BOOT CAMP THE BOOK 増補改訂版』読書会 第3回目", "date": "2021/10/29", "url":
const arr = [ {id: 2, date: new Date(2020, 1, 2)}, {id: 1, date: new Date(2020, 1, 1)}, {id: 3, date: new Date(2020, 2, 28)}, {id: 5, date: new Date(2025, 1, 1)}, {id: 4, date: new Date(2020, 2, 29)}, ]; console.log( arr.sort( (x, y) => (x.date.getTime()) - (y.date.getTime()), ) ) console.log(arr); const arr = [ {id: 2, date: new Date(2020, 1, 2)}, {id: 1, date: new Date(2020, 1, 1)}, {id: 3, date
Object.entries()を使用すると簡潔に書けますObject.entries()を使用してObjectのループを書けます。 実際に書いてみましょう! const testObj = { "key01": "AAA", "key02": "BBB" } for ([key, value] in Object.entries(testObj)) { console.log(`${key}: ${value}`); } # or Object.entries(testObj).forEach(([key, value], index) => { console.log(`${key}: ${value}`); })こんな感じで書けます! key&valueをそのままforループ内で使用できるので、便利ですね。 ※Internet Explorerでは動作しないので、注意が必要! 他の方
はじめに この記事はこちらの記事の和訳となります。 なお、著者には許可をいただいております。是非原文もご覧ください。 拙訳なので、ご指摘などあればお待ちしております。 Javascriptのバグ修正や答えを求めてGoogleやStackOverflowを探し回るのは楽しくないでしょう🏴☠️。 この記事では、生産性⚡を最大化し、苦痛🩸を最小化する、20個(訳註:正確には15個)の短く、パワフルなJavaScriptのテクニックを紹介します。 それではコードを見ていきましょう🤘 配列の重複を除去 配列から重複した要素を除去します。 const arr = ["a", "b", "c", "d", "d", "c", "e"] const uniqueArray = Array.from(new Set(arr)); console.log(uniqueArray); // ['a',
JavaScriptでオブジェクトの配列を操作するためにもっとも有用な配列メソッドとコードを紹介します。 JavaScript Array Methods: A Comprehensive Guide by Luca Spezzano 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに filter()メソッド: オブジェクトの配列からキーstatusがactiveと等しいオブジェクトの配列を取得する find()メソッド: 配列内から特定のidを持つオブジェクトを検索する findIndex()メソッド: 配列内の特定のキーを持つオブジェクトのインデックスを検索する reduce()メソッド: オブジェクトの配列内にある特定のキーの値を合計する map()メソッド: オブジェクトの配列内に含まれる特定のキーに対応する一意
知名度が低いウェブ標準ひとり Advent Calendar 2021 – 11 日目 今日は event.composedPath() です。jQuery の parents() を思い出します。 Event.composedPath() – Web APIs | MDN デモ:https://codepen.io/ginpei/pen/ExwgeNd 基本的な使い方 イベントが発火した要素 event.target から順に要素のパス?の根本までの要素オブジェクトを配列で返します。 el.addEventListener('click', (event) => { console.log(event.composedPath()); // => [button, span#elButton, p, header, article, body, html, document, Windo
表示中のHTMLから情報を雑に抜き出して利用するため,ブラウザのデベロッパツールなどでquerySelectorAllしてmapしたい.しかし,querySelectorAllはNodeListを返すので,mapするにはArrayに変換する必要がある. NodeListをArrayに変換するときに短く書く方法ないですかって同僚に聞いたらいろいろ教えてもらえたのでメモ. Array.prototype.slice.callする オーソドックスな手法.昔からこれを書いていて,長くて困っていた.最近はアロー関数を使えるのでちょっと短くなったけど長い. Array.prototype.slice.call(document.querySelectorAll('a')).map(a => a.href) [].slice.callする Array.prototypeのかわりに[]で書く.ちょっと短い
デベロッパーのコミュニティには、実装に役立つテクニックやヒントが満載です。その中から特に有用なJavaScriptのテクニックとヒントを紹介します。 8 JavaScript Tips & Tricks That No One Teaches 🚀 by Garvit Motwani (@GarvitMotwani) 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに 1. JavaScriptにおける機能継承 2. .map()の置換 3. 数値から文字列に、文字列から数値に 4. lengthを使用して配列のサイズを変更したり、空にする 5. 配列の分割で値を入れ替える 6. 配列から重複を削除する 7. ループのコードを少なくする 8. パフォーマンス 終わりに はじめに JavaScriptは世界で最もクールな言語
JavaScriptでコードを記述する際、配列の各要素について処理をするケースは頻出します。開発の現場で配列操作の処理を見ていると、次のようなケースがよくあります。 配列の非破壊の望まれる場面が増えているが、元の配列を破壊操作している filter()やevery()など配列のメソッドで書けるところを、forEach()メソッドやfor ... of文を使ってコードを記載し、冗長になっている 記述しても効果のないArray.from()を使用している コード的には問題なく、アプリケーションは意図的に動作しているかもしれません。しかし、冗長な記述は可読性が低下し、予期せぬバグを誘発する可能性があるでしょう。 本記事では、配列操作でよく見かける冗長な記述を、簡潔な記述で置き換える方法について解説します。 本記事で紹介するJavaScriptの配列操作のチートシートを用意したので、まとめて読みた
JavaScriptのArrayを知る。大きな目標への小さな一歩 〜Array.prototype.fill編〜 こんにちは、フロントエンドエンジニアのザワです。 Are you hungry? 急に何だよ、と思われるのも当然です。 人の欲求というのは限りないものです。求めることは成長するために必要なことですが、求めすぎることは時に自分を必要以上に追い詰める刃になりかねません。ということでハードルは高くしすぎず、いつも通りマイペースに一歩ずつ進もうと思う今日この頃です。 さて、今回のArrayシリーズは、Array.prototype.fillです。こちらも名前からするに想像しやすいですよね。 「満たす」という意味を持つfillのことですから、配列を何かで満たすことなんだろうなとイメージできます。 さっそく自分の幸福度を満たすべく、fillメソッドを紐解いていきます。 ※ ここからの説明は
JavaScriptのArrayを知る。大きな目標への小さな一歩 〜Array.prototype.map編〜 こんにちは、フロントエンドエンジニアのザワです。 気候や季節に影響されやすいので、夏にArrayという文字を見ると、「オーレーイ!」とラテンなノリで叫び出したくなる私です。 さて、今回のArrayシリーズは、Array.prototype.mapを取り上げます。 前回のspliceメソッドのとき、玄人感があるメソッドという風に紹介しました。今回のmapメソッドも玄人向け、というより、使ってるソースコードを見かけると、コイツ、デキると思ってしまうメソッドです。 後述しますが、配列をちゃかちゃかして新しい配列を作成するメソッドです。なので、APIからの値をごにょごにょして扱いやすい配列に整形するなど、使いこなせばなかなか活躍するシーンがあるのではないか、と期待させるヤーツです。 それ
JavaScriptのArrayを知る。大きな目標への小さな一歩 〜Array.prototype.splice編〜 こんにちは、フロントエンドエンジニアのザワです。 突然ですが…… 気持ち、切り替えられていますか? 私は季節の変わり目に新しい自分を迎える準備として断捨離を行います。そして、気分を一新するために新しい洋服を購入します。頭の先から足の先まで。 要するに、帽子や靴などを含む身にまとうものすべてを新しくします。すると、手っ取り早くテンションを上げられるので、最近3年くらいはこのスタンスでいます。あげぽよです。ただし、異常に気に入るアイテムがあった場合、次の年に同じものが手に入るとは限らないのでタンスの奥にしまうこともあります。 「断捨離ってないじゃないか!」 「例外のルールがあるなんてエンジニアとして失格じゃないか?」 そんな声が聞こえてきますが、厳密なルールというのは崩れると弱
こんにちは、フロントエンドエンジニアのザワです。 突然ですが、みなさんは「繋がり」を大事にしていますか? 老後のことを考えると、人はひとりじゃ生きていけませんから、やはり誰かと手と手を取り合って生きていかなければなりません。今回のArrayシリーズは、そんな友達100人作りたいあなたにぴったりのメソッド、Array.prototype.concatをご紹介します。 ※ここからの説明は個人的に調べて解釈したざっくりとした説明になります。詳しく知りたい方はこちらへどうぞ Array.prototype.concat()メソッドとは 値を連結させて新しい配列を作るメソッドです。 Array.prototype.concat。発音はコンカット? コンカト? とにかく物理的に固そうな名前ですね。辞書で調べてみると、concatは見つからなかったのですが、concatenate、連結させる、という意味
こんにちは。環境の影響を受けやすい、根っからのミーハーなフロントエンドエンジニア・ザワです。「ミーハー」という言葉は死語なのでしょうか。 さて、今回のArrayシリーズは、そんなミーハーな私にはたまらないメソッドであるArray.prototype.everyをご紹介しましょう。 「every」と聞くと某ニュース番組を連想してしまいがちですが、「すべての」という意味ですよね。どういうメソッドなのか、この時点ですでに想像に容易いのではないでしょうか。 それではさっそく進めていきたいと思います。 ※ここからの説明は個人的に調べて解釈したざっくりとした説明になります。詳しく知りたい方はこちらへどうぞ Array.prototype.every()メソッドとは 配列の各要素に対してテストを行い、すべて通った場合にtrueを返します。 テストが失敗した時点でfalseを返して、以降の要素に対してのテ
過去の記憶が断片的になってきたと感じる、脳筋フロントエンドエンジニアのザワです。地道な積み重ねでなんとかカバーしていきたいものです。 さて、よちよち進んでいますArrayシリーズ。今回は、Array.prototype.find編です。 find……って、これまた何をするのか名前から簡単に想像できそうですね。 はい、そうです。「見つける」です。 findメソッドを学んでいく中で何かしらを見つけて、未来への何かしらの糧になればと思っています。それでは元気に進めていきましょう! ※ここからの説明は個人的に調べて解釈したざっくりとした説明になります。詳しく知りたい方はこちらへどうぞ。 Array.prototype.find()メソッドとは 配列の中から目的の要素を見つけるメソッドです。 要素が見つかれば要素の値を返し、見つからなければundefinedが返ってきます。 実装例文 さっそく例文で
var a=[1,2,3,4,5] //jQuery $.each(a,function(){ console.log(this); //1,2,3,4,5が、Numberクラスに変換されて表示される }); //forEach a.forEach(function(val){ console.log(this); //undefinedが表示されるか、windowオブジェクトが表示される }); var b = [5,6,7,8,9] a.forEach(function(val,index){ console.log(this[index]); //5,6,7,8,9が表示される },b);
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く