Saya harap Anda telah menemukan daftar singkat pertanyaan dan jawaban wawancara JavaScript umum ini berguna. Terima kasih telah membaca
Bangun aplikasi web yang dapat disusunJangan membangun monolit web. Gunakan Bit untuk membuat dan menyusun komponen perangkat lunak yang dipisahkan — dalam kerangka kerja favorit Anda seperti React atau Node. Bangun aplikasi yang dapat diskalakan dan modular dengan pengalaman pengembang yang kuat dan menyenangkan
Bawa tim Anda ke Bit Cloud untuk menghosting dan berkolaborasi pada komponen bersama-sama, serta mempercepat, menskalakan, dan menstandarkan pengembangan sebagai sebuah tim. Coba frontend yang dapat dikomposisi dengan Sistem Desain atau Frontend Mikro, atau jelajahi backend yang dapat dikomposisi dengan komponen sisi server
Metode const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}1 memetakan setiap entri array ke entri baru dengan memanggil fungsi callback untuk melakukan pemetaan
Ini mengembalikan array baru dengan nilai yang dipetakan
Kita dapat mengimplementasikannya sebagai berikut
const map = (arr, callback) => {if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
newArr.push(callback(arr[i], i, arr));
}
return newArr;
}_
Pertama, kami memeriksa apakah const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}_3 adalah sebuah array, kami mengembalikan array kosong jika bukan
Pada kode di atas, kita memiliki metode const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}_4 yang melewati setiap entri array dan memanggil const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}5 dengan entri array, indeks, dan array asli yang diteruskan. Setiap entri didorong ke array const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}6
Kemudian mengembalikan array const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}_6, yang memiliki entri yang dipetakan
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}_8 dengan tangan
Metode const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}8 mengembalikan larik baru yang mengambil elemen dari larik asli yang memenuhi predikat dalam panggilan balik, mendorong entri tersebut ke dalam larik baru, lalu mengembalikannya
Kita dapat mengimplementasikannya sebagai berikut
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}
Pada kode di atas, pertama-tama kita periksa apakah const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}3 adalah sebuah array. Kami mengembalikan array kosong jika tidak
Kemudian kami mengulang const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}3 dan kemudian menggunakan blok const reduce = (arr, reduceCallback, initialValue) => {
if (!Array.isArray(arr)) {
return;
}
let val = initialValue || 0;
for (let i = 0, len = arr.length; i < len; i++) {
val = reduceCallback(val, arr[i]);
}
return val;
}2 untuk memeriksa apakah panggilan const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}5 mengembalikan const reduce = (arr, reduceCallback, initialValue) => {
if (!Array.isArray(arr)) {
return;
}
let val = initialValue || 0;
for (let i = 0, len = arr.length; i < len; i++) {
val = reduceCallback(val, arr[i]);
}
return val;
}4 , lalu kami mendorong entri tersebut ke const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}6 dan mengembalikannya
if (!Array.isArray(arr)) {
return;
}
let val = initialValue || 0;
for (let i = 0, len = arr.length; i < len; i++) {
val = reduceCallback(val, arr[i]);
}
return val;
}_6 dengan tangan
Metode const reduce = (arr, reduceCallback, initialValue) => {
if (!Array.isArray(arr)) {
return;
}
let val = initialValue || 0;
for (let i = 0, len = arr.length; i < len; i++) {
val = reduceCallback(val, arr[i]);
}
return val;
}_6 menggabungkan entri array menjadi satu dengan memanggil callback berulang kali untuk menggabungkan entri array menjadi satu nilai
Sebagai contoh, kita dapat menulis berikut ini
const reduce = (arr, reduceCallback, initialValue) => {if (!Array.isArray(arr)) {
return;
}
let val = initialValue || 0;
for (let i = 0, len = arr.length; i < len; i++) {
val = reduceCallback(val, arr[i]);
}
return val;
}
Kami pertama-tama memeriksa apakah const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}_3 adalah sebuah array, kemudian kami kembali jika itu bukan sebuah array
Kemudian kami menetapkan const reduce = (arr, reduceCallback, initialValue) => {
if (!Array.isArray(arr)) {
return;
}
let val = initialValue || 0;
for (let i = 0, len = arr.length; i < len; i++) {
val = reduceCallback(val, arr[i]);
}
return val;
}_9 ke function logArgs() {
console.log(arguments)
}logArgs(1, 2, 3, 4, 5);0 jika ada atau 0
Selanjutnya, kita mengulang array dan kemudian menggunakan function logArgs() {
console.log(arguments)
}logArgs(1, 2, 3, 4, 5);1 untuk menggabungkan const reduce = (arr, reduceCallback, initialValue) => {
if (!Array.isArray(arr)) {
return;
}
let val = initialValue || 0;
for (let i = 0, len = arr.length; i < len; i++) {
val = reduceCallback(val, arr[i]);
}
return val;
}9 dan function logArgs() {
console.log(arguments)
}logArgs(1, 2, 3, 4, 5);3 dan mengembalikan nilai baru dan menetapkannya ke const reduce = (arr, reduceCallback, initialValue) => {
if (!Array.isArray(arr)) {
return;
}
let val = initialValue || 0;
for (let i = 0, len = arr.length; i < len; i++) {
val = reduceCallback(val, arr[i]);
}
return val;
}9
Setelah loop selesai, kami mengembalikan ________12______9
Objek function logArgs() {
console.log(arguments)
}logArgs(1, 2, 3, 4, 5);_6 adalah objek seperti array yang mengembalikan argumen yang diteruskan ke fungsi tradisional
Itu tidak bekerja dengan fungsi panah
Ini adalah objek seperti array karena entrinya dapat diakses oleh indeks dan memiliki properti function logArgs() {
console.log(arguments)
}logArgs(1, 2, 3, 4, 5);7. function logArgs() {
console.log(arguments)
}logArgs(1, 2, 3, 4, 5);6 tidak memiliki metode array
Selain itu, dapat di-loop melalui loop function logArgs() {
console.log(arguments)
}logArgs(1, 2, 3, 4, 5);9 dan dikonversi menjadi array dengan operator spread
Misalnya, jika kita menulis
function logArgs() {console.log(arguments)
}logArgs(1, 2, 3, 4, 5);
Lalu kita melihat sesuatu seperti
Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]dari Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]0
Kita dapat melihat entri dan metode Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]_1, jadi kita tahu ini adalah objek yang dapat diubah
Kita dapat mengubahnya menjadi array menggunakan operator spread sebagai berikut
function logArgs() {console.log([...arguments])
}logArgs(1, 2, 3, 4, 5);
Kemudian Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]0 memberikan Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]3 , yang merupakan array biasa
Untuk fungsi panah, kami menggunakan operator lainnya untuk mendapatkan semua argumen sebagai berikut
console.log(args)
}logArgs(1, 2, 3, 4, 5);
Kami melihat Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]_3 dicatat
Bagaimana Anda menambahkan elemen di awal array?Kita dapat menggunakan metode Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]_5 untuk menambahkan elemen ke awal array
Misalnya, kita bisa menulis
const arr = [2, 3, 4];arr.unshift(1);
Maka const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}3 adalah Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]7
Operator spread juga berfungsi untuk ini
let arr = [2, 3, 4];arr = [1, ...arr];
Perhatikan bahwa kami mengubah Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]8 menjadi Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]9 karena kami menetapkan nilai baru
Bagaimana Anda menambahkan elemen di akhir array?Kita dapat menggunakan metode function logArgs() {
console.log([...arguments])
}logArgs(1, 2, 3, 4, 5);_0 untuk menambahkan entri ke akhir array
Misalnya, kita bisa menulis
const arr = [2, 3, 4];arr.push(1);
Maka const filter = (arr, callback) => {
if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}3 adalah function logArgs() {
console.log([...arguments])
}logArgs(1, 2, 3, 4, 5);2
Operator spread juga berfungsi untuk ini
const filter = (arr, callback) => {if (!Array.isArray(arr)) {
return [];
}
const newArr = [];
for (let i = 0, len = arr.length; i < len; i++) {
if (callback(arr[i], i, arr)) {
newArr.push(arr[i]);
}
}
return newArr;
}0
Perhatikan bahwa kami mengubah Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]8 menjadi Arguments(5) [1, 2, 3, 4, 5, callee: ƒ, Symbol(Symbol.iterator): ƒ]9 karena kami menetapkan nilai baru
KesimpulanKami belajar lebih banyak tentang larik JavaScript dengan menerapkan metode larik dari awal dan berlatih melakukan operasi umum dengannya