Rumah >hujung hadapan web >tutorial js >Kaedah Tatasusunan JavaScript: Tingkatkan Prestasi dan Kebolehbacaan Kod Anda
Array ialah tulang belakang pemprosesan data JavaScript. Panduan ini akan mengubah cara anda bekerja dengan tatasusunan, menunjukkan kepada anda cara menulis kod yang lebih pantas, bersih dan lebih cekap.
const numbers = Array.from({ length: 10000 }, (_, i) => i); // ?️ Fastest: Traditional For Loop console.time('For Loop'); for (let i = 0; i < numbers.length; i++) { // Process numbers[i] } console.timeEnd('For Loop'); // ? Good Performance: forEach console.time('forEach'); numbers.forEach(num => { // Process number }); console.timeEnd('forEach'); // ? Slowest: for...of console.time('for...of'); for (const num of numbers) { // Process number } console.timeEnd('for...of'); // ?️ Special Case: for...in console.time('for...in'); for (const index in numbers) { // Process numbers[index] } console.timeEnd('for...in');
// Demonstrating for...in Behavior const problemArray = [1, 2, 3]; problemArray.customProperty = 'Danger!'; console.log('for...in Iteration:'); for (const index in problemArray) { console.log(problemArray[index]); // Logs: 1, 2, 3, and 'Danger!' } // Safe Object Iteration const user = { name: 'Alice', age: 30 }; console.log('Safe Object Iteration:'); for (const key in user) { if (user.hasOwnProperty(key)) { console.log(`${key}: ${user[key]}`); } }
// ❌ Slow and Verbose let doubledNumbers = []; for (let i = 0; i < numbers.length; i++) { doubledNumbers.push(numbers[i] * 2); }
// ✅ Efficient and Readable const doubledNumbers = numbers.map(num => num * 2);
const products = [ { name: 'Laptop', price: 1200, inStock: true }, { name: 'Phone', price: 800, inStock: false }, { name: 'Tablet', price: 500, inStock: true } ]; // Multiple Filter Conditions const affordableAndAvailableProducts = products .filter(product => product.price < 1000) .filter(product => product.inStock);
// ? More Efficient Single-Pass Filtering const affordableProducts = products.filter(product => product.price < 1000 && product.inStock );
const transactions = [ { category: 'Food', amount: 50 }, { category: 'Transport', amount: 30 }, { category: 'Food', amount: 40 } ]; // Group and Calculate Spending const categorySummary = transactions.reduce((acc, transaction) => { // Initialize category if not exists acc[transaction.category] = (acc[transaction.category] || 0) + transaction.amount; return acc; }, {}); // Result: { Food: 90, Transport: 30 }
// ✅ Best Way to Clear an Array let myArray = [1, 2, 3, 4, 5]; myArray.length = 0; // Fastest method // ❌ Less Efficient Methods // myArray = []; // Creates new array // myArray.splice(0, myArray.length); // More overhead
// Create Shallow Copy const originalArray = [1, 2, 3]; const arrayCopy = [...originalArray]; // Combining Arrays const combinedArray = [...originalArray, ...anotherArray];
const users = [ { name: 'Alice', age: 25, active: true }, { name: 'Bob', age: 30, active: false }, { name: 'Charlie', age: 35, active: true } ]; const processedUsers = users .filter(user => user.active) .map(user => ({ ...user, seniorStatus: user.age >= 30 })) .sort((a, b) => b.age - a.age);
function measurePerformance(fn, label = 'Operation') { const start = performance.now(); fn(); const end = performance.now(); console.log(`${label} took ${end - start} milliseconds`); } // Usage measurePerformance(() => { // Your array operation here }, 'Array Transformation');
Menguasai kaedah tatasusunan adalah tentang:
Laksanakan saluran paip pemprosesan data hanya menggunakan peta, penapis dan kurangkan yang mengubah set data kompleks dengan cekap!
Sila pastikan anda berkongsi komen anda tentang siaran ini....
Jom sambung LinkedIn
Atas ialah kandungan terperinci Kaedah Tatasusunan JavaScript: Tingkatkan Prestasi dan Kebolehbacaan Kod Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!