この投稿のすべてのコードは、リポジトリ Github で見つけることができます。
アレイプロトタイプ関連の課題
Array.prototype.at()
/** * @param {number} index * @return {any | undefiend} */ Array.prototype.myAt = function (index) { const len = this.length; if (index = len) { return; } return this[(index + len) % len]; }; // Usage example console.log([1, 2, 3, 4].myAt(2)); // => 3 console.log([1, 2, 3, 4].myAt(-1)); // => 4 console.log([1, 2, 3, 4].myAt(5)); // => undefined
Array.prototype.concat()
/** * @template T * @param {...(T | Array<t>)} itemes * @return {Array<t>} */ Array.prototype.myConcat = function (...items) { const newArray = [...this]; for (const item of items) { if (Array.isArray(item)) { newArray.push(...item); } else { newArray.push(item); } } return newArray; }; // Usage example console.log([1, 2, 3].myConcat([])); // => [1, 2, 3]; console.log([1, 2, 3].myConcat([4, 5, 6, [2]])); // => [1, 2, 3, 4, 5, 6, [2]]; </t></t>
Array.prototype.every()
/** * @template T * @param { (value: T, index: number, array: Array<t>) => boolean } callbackFn * @param {any} [thisArg] * @return {boolean} */ Array.prototype.myEvery = function (callbackFn, thisArg) { const len = this.length; let flag = true; for (let i = 0; i item > 2)); // => false console.log([1, 2, 3].myEvery((item) => item > 0)); // => true </t>
Array.prototype.filter()
/** * @template T, U * @param { (value: T, index: number, array: Array<t>) => boolean } callbackFn * @param { any } [thisArg] * @return {Array<t>} */ Array.prototype.myFilter = function (callbackFn, thisArg) { const newArray = []; for (let i = 0; i value % 2 == 0)); // => [2, 4] console.log([1, 2, 3, 4].myFilter((value) => value [1, 2] </t></t>
Array.prototype. flat()
/** * @param { Array } arr * @param { number } depth * @returns { Array } */ function flatten(arr, depth = 1) { const newArray = []; for (let i = 0; i word.length > 6); console.log(result); // => ["exuberant", "destruction", "present"]
Array.prototype.forEach()
/** * @template T, U * @param { (value: T, index: number, array: Array<t>) => U } callbackFn * @param {any} [thisArg] * @return {Array<u>} */ Array.prototype.myForEach = function (callbackFn, thisArg) { if (this == null) { throw new TypeError("this is null or not defined"); } if (typeof callbackFn !== "function") { throw new TypeError(callbackFn + " is not a function"); } const O = Object(this); // Zero-fill Right Shift to ensure that the result if always non-negative. const len = O.length >>> 0; for (let i = 0; i el * el), null ); // => [1, 4, 9]; </u></t>
Array.prototype.indexOf()
/** * @param {any} searchElement * @param {number} fromIndex * @return {number} */ Array.prototype.myIndexOf = function (searchElement, fromIndex = 0) { const len = this.length; if (fromIndex 2 console.log([1, 2, 3, 4, 5].myIndexOf(6)); // => -1 console.log([1, 2, 3, 4, 5].myIndexOf(1)); // => 0 console.log(['a', 'b', 'c'].myIndexOf('b')); // => 1 console.log([NaN].myIndexOf(NaN)); // => -1 (since NaN !== NaN)
Array.prototype.last()
/** * @return {null|boolean|number|string|Array|Object} */ Array.prototype.myLast = function () { return this.length ? this.at(-1) : -1; }; // Usage example console.log([].myLast()); // => -1; console.log([1].myLast()); // => 1 console.log([1, 2].myLast()); // => 2
Array.prototype.map()
/** * @template T, U * @param { (value: T, index: number, array: Array<t>) => U } callbackFn * @param {any} [thisArg] * @return {Array<u>} */ Array.prototype.myMap = function (callbackFn, thisArg) { const len = this.length; const newArray = Array.from({ length: len }); for (let i = 0; i i)); // => [1, 2, 3, 4] console.log([1, 2, 3, 4].myMap((i) => i * i)); // => [1, 4, 9, 16]) </u></t>
Array.prototype.reduce()
/** * @template T, U * @param { (previousValue: U, currentValue: T, currentIndex: number, array: Array<t>) => U } callbackFn * @param {U} [initialValue] * @return {U} */ Array.prototype.myReduce = function (callbackFn, initialValue) { const hasInitialValue = initialValue !== undefined; const len = this.length; if (!hasInitialValue && !len) { throw new Error("Reduce of empty array with no initial value"); } let accumulator = hasInitialValue ? initialValue : this[0]; let startingIndex = hasInitialValue ? 0 : 1; for (let i = startingIndex; i acc + num, 0); console.log(sum); // => 15 const products = numbers.myReduce((acc, num) => acc * num, 1); </t>
Array.prototype.some()
/** * @template T * @param { (value: T, index: number, array: Array<t>) => boolean } callbackFn * @param {any} [thisArg] * @return {boolean} */ Array.prototype.mySome = function (callbackFn, thisArg) { const len = this.length; let flag = false; for (let i = 0; i item > 2)); // => true console.log([1, 2, 3].mySome((item) => item false </t>
Array.prototype.square()
/** * @return {Array<number>} */ Array.prototype.mySquare = function () { const len = this.length; const newArray = Array.from({ length: len }); for (let i = 0; i [1, 4, 9]; console.log([].mySquare()); // => []; </number>
参照
- 素晴らしいフロントエンド
- Array.prototype.at() - MDN
- Array.prototype.concat() - MDN
- Array.prototype.every() - MDN
- Array.prototype.filter() - MDN
- Array.prototype. flat() - MDN
- Array.prototype.forEach() - MDN
- Array.prototype.indexOf() - MDN
- Array.prototype.map() - MDN
- Array.prototype.reduce() - MDN
- Array.prototype.some() - MDN
- 2635。配列内の各要素に変換を適用 - LeetCode
- 2634。配列から要素をフィルタリングする - LeetCode
- 2626。配列削減変換 - LeetCode
- 2619。配列プロトタイプ 最後 - LeetCode
- 2625。深く入れ子になった配列を平坦化する - LeetCode
- 3. Array.prototype. flat() を実装する - BFE.dev
- 151. Array.prototype.map() を実装する - BFE.dev
- 146。 Array.prototype.reduce() を実装する - BFE.dev
以上が配列プロトタイプ - JavaScript の課題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 中国語版
中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
