window.pipedriveLeadboosterConfig={です。 ベース:'leadbooster-chat.pipedrive.com'、 companyId:11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2、 } ;(function () { var w = window もし (w.LeadBooster) {なら console.warn('LeadBooster already exists') } else { w.LeadBooster = { {. q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 関数 (n) { { this.q.push({ t: 'o', n: n, h: h }) this.q.push({ t: 't', n: n }) }, } } })() 3つの便利な点 - JavaScript~The Codestの休息とスプレッド
The Codest
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 産業
    • フィンテック&バンキング
    • E-commerce
    • アドテック
    • ヘルステック
    • 製造業
    • 物流
    • 自動車
    • アイオーティー
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
戻る矢印 戻る
2019-11-25
ソフトウェア開発

3つの便利な点 - JavaScriptの休息とスプレッド

ルカシュ・コルコ

ECMAScript 2015は私たちに多くのニュースをもたらし、その結果多くの改善がなされました。今日は、生活を楽にする2つの機能を詳しく見ていこう。残りのパレメータとスプレッド構文です。

休養パラメータ

rest構文では、不定数の引数を配列として表現することができる。渡されたすべての引数を加算する関数を見てみよう。

const sum = (...args) => args.reduce((prev, current) => prev + current);

console.log(sum(1, 2)); // 3
console.log(sum(1, 2, 3)); // 6

スプレッド構文

spread演算子を使うと、反復可能なオブジェクトを個々の要素に展開することができる。この機能は、restパラメータで実現した機能とは正反対である。配列、オブジェクト、セット、マップなど、すべてのイテレート可能なオブジェクトに適用できます。

const sum = (x, y, z) => x + y + z;
const numbers = [1, 2, 3];

console.log(sum(...numbers)); // 6

実際の使用例における3つの点

配列のコピー

spread構文は、配列をコピーする際に、事実上1レベル深くなる。1レベルとは、最初のレベルの参照がコピーされることを意味する。

const array0 = [1, [2, 3]];
const array1 = [...array0];

console.log(array1); // [1, [2, 3]].

ユニークな要素の配列を作る

一意な要素のみを格納するSetを作成し、配列に戻す。

const array = [1, 1, 2, 3];
const uniqueElements = [...new Set(array)];

console.log(uniqueElements); // [1, 2, 3].

配列の連結

const array0 = [1, 2];
const array1 = [3, 4];
const concated = [...array0, ...array1];

console.log(concated); // [1, 2, 3, 4].

配列のスライス

const [firstElement, ...newArray] = [1, 2, 3, 4];

console.log(firstElement); // 1
console.log(newArray); // [2, 3, 4].

を取り除くこともできる。 n をコンマで区切ってください。

const [, , , ...newArray] = [1, 2, 3, 4];

console.log(newArray); // [4].

配列を別の配列の先頭に挿入する

const array0 = [4, 5, 6];
const array1 = [1, 2, 3];
const newArray = [...array1, ...array0];

console.log(newArray); // [ 1, 2, 3, 4, 5, 6 ]。

から0までの数字の配列を生成する n

const array = [...Array(10)].map((_, i) => i);

console.log(array); // [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]。

オブジェクトの再構築

const { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4= { x: 1, y: 2, a: 3, b: 4 };

console.log(x); // 1
console.log(y); // 2
console.log(z); // { a:3, b: 4 }

オブジェクトのコピーの作成

let person = {(人
  名前: 'John'、
  年齢: 25、
  財布{
    合計: 500、
    通貨: 'USD'
  }
};
let personCopy = { ...person };

console.log(personCopy);
// {
// 名前: 'John'、
// 年齢:25歳、
// 財布{
// 合計: 500、
// 通貨: 'USD'
// }
// }

作成されるオブジェクトのコピーは、元のオブジェクトのすべてのプロパティを持つが、プロトタイプ情報は持たない新しいオブジェクトであることに注意。

person.age = 20;

console.log(person.age); // 20
console.log(personCopy.age); // 25

スプレッド構文はオブジェクトの「浅い」コピーを作成するため、「wallet」プロパティは元のサブオブジェクトへの参照としてのみコピーされることに注意してください。ディープクローニングには、オブジェクトの複雑さに応じて、JSONの文字列化/パースアプローチやLodashが提供する'cloneDeep'メソッドを使用することができます。場合によっては、この方法も役に立ちます:

personCopy = { ...person, wallet = {...person.wallet}}; 

オブジェクトに条件付きでプロパティを追加する

短絡評価とともにスプレッド演算子を利用することで、作成中の新しいオブジェクトに条件付きでプロパティを追加することができる。

const色= {。
  red:'#ff0000'、
  green: '#00ff00'、
  blue:'#0000ff'
};
const black = { {.
  黒: '#000000'
};

let extraBlack = false;
let conditionalMerge = { ...
  ...色
  ...(extraBlack ? black : {})
};

console.log(conditionalMerge);
// {
// 赤:'#ff0000'、
// 緑: '#00ff00'、
// 青:'#0000ff'
// }

extraBlack = true;
conditionalMerge = { ...
  ...色
  ...(extraBlack ? black : {})
};

console.log(conditionalMerge);
// {
// 赤:'#ff0000'、
// 緑: '#00ff00'、
// 青:'#0000ff'
// 黒: '#000000'
// }

文字列を文字に分割する

これは、パラメータに空文字列を指定してsplitメソッドを呼び出すのと似ている。

const split = [...'qwerty'];
console.log(split); // [ 'q', 'w', 'e', 'r', 't', 'y' ]。

デジタル製品開発コンサルティング

続きを読む

新興企業のソフトウェア製品開発に共通する3つの課題

Javaに最適なプロジェクトの種類

悪いコーディング・プラクティスでプロジェクトを潰さないためには?

関連記事

ソフトウェア開発

将来を見据えたウェブ・アプリケーションの構築:The Codestのエキスパート・チームによる洞察

The Codestが、最先端技術を駆使してスケーラブルでインタラクティブなウェブアプリケーションを作成し、あらゆるプラットフォームでシームレスなユーザー体験を提供することにどのように秀でているかをご覧ください。The Codestの専門知識がどのようにデジタルトランスフォーメーションとビジネス...

ザ・コデスト
ソフトウェア開発

ラトビアを拠点とするソフトウェア開発企業トップ10社

ラトビアのトップソフトウェア開発企業とその革新的なソリューションについて、最新記事でご紹介します。ラトビアの技術リーダーたちがあなたのビジネスをどのように向上させるかをご覧ください。

thecodest
エンタープライズ&スケールアップ・ソリューション

Javaソフトウェア開発の要点:アウトソーシングを成功させるためのガイド

outsourcingのJavaソフトウェア開発を成功させるために不可欠なこのガイドを読んで、The Codestで効率性を高め、専門知識にアクセスし、プロジェクトを成功に導きましょう。

thecodest
ソフトウェア開発

ポーランドにおけるアウトソーシングの究極ガイド

ポーランドのoutsourcingの急増は、経済、教育、技術の進歩がITの成長とビジネス・フレンドリーな環境を促進していることによる。

ザ・コデスト
エンタープライズ&スケールアップ・ソリューション

IT監査ツール&テクニック完全ガイド

IT監査は、安全かつ効率的で、コンプライアンスに準拠したシステムを保証します。その重要性については、記事全文をお読みください。

The Codest
ヤクブ・ヤクボヴィッチ CTO & 共同創設者

ナレッジベースを購読して、IT部門の専門知識を常に最新の状態に保ちましょう。

    会社概要

    The Codest - ポーランドに技術拠点を持つ国際的なソフトウェア開発会社。

    イギリス - 本社

    • オフィス 303B, 182-184 High Street North E6 2JA
      イギリス、ロンドン

    ポーランド - ローカル・テック・ハブ

    • ファブリチュナ・オフィスパーク、アレハ
      ポコジュ18、31-564クラクフ
    • ブレイン・エンバシー, コンストルクトースカ
      11, 02-673 Warsaw, Poland

      The Codest

    • ホーム
    • 会社概要
    • サービス
    • Case Studies
    • ノウハウ
    • 採用情報
    • 辞書

      サービス

    • アドバイザリー
    • ソフトウェア開発
    • バックエンド開発
    • フロントエンド開発
    • Staff Augmentation
    • バックエンド開発者
    • クラウドエンジニア
    • データエンジニア
    • その他
    • QAエンジニア

      リソース

    • 外部ソフトウェア開発パートナーとの協力に関する事実と神話
    • 米国から欧州へ:アメリカの新興企業がヨーロッパへの移転を決断する理由
    • テックオフショア開発ハブの比較:テックオフショア ヨーロッパ(ポーランド)、ASEAN(フィリピン)、ユーラシア(トルコ)
    • CTOとCIOの課題は?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • ウェブサイト利用規約

    著作権 © 2025 by The Codest。無断複写・転載を禁じます。

    jaJapanese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek jaJapanese