Làm cách nào để đếm số lần một phần tử xuất hiện trong một mảng JavaScript?
Viết chương trình JavaScript đếm số lần xuất hiện của một giá trị trong mảng Giải pháp mẫu Mã JavaScript Đầu ra mẫu Trình bày bằng hình ảnh Sơ đồ Bản thử trực tiếp Xem Bút javascript-basic-exercise-70-1 của w3resource (@w3resource) trên CodePen Cải thiện giải pháp mẫu này và đăng mã của bạn qua Disqus Trước. Viết chương trình JavaScript để nhóm các phần tử của một mảng dựa trên hàm đã cho và trả về số phần tử trong mỗi nhóm Mức độ khó của bài tập này là gì? Dễ dàng trung bình khóKiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource Theo dõi chúng tôi trên Facebook và Twitter để cập nhật thông tin mới nhất. JavaScript. Lời khuyên trong ngàyNhận các giá trị duy nhất của một thuộc tính đối tượng trong các mục nhập mảng Chúng ta có thể lấy các giá trị duy nhất của một đối tượng trong các mục nhập mảng bằng cách ánh xạ các giá trị đó vào một mảng const bills = [{ date: '2020-01-20', amount: '70', category: 'phone' }, { date: '2020-01-20', amount: '20', category: 'gas' }, { date: '2020-02-20', amount: '75', category: 'phone' } ] Sau đó chúng ta có thể viết const categories = [...new Set(bills.map(bill => bill.category))] Sau đó, danh mục sẽ là ["phone", "gas"] Giới thiệu. https. //chút. ly/3mp5NgH
Chúc mừng ngày thứ 7 trong 365 ngày lập trình. 1 tuần giảm 52 để đi. Một giải pháp JavaScript cho một hàm đếm số lần thứ gì đó xuất hiện trong một mảng. Đây có thể là một mảng phẳng hoặc một mảng các mảng từ chối trách nhiệm. có NHIỀU cách để giải quyết vấn đề này, đây là câu trả lời mà tôi sẽ thấy hoặc sử dụng trong một cuộc phỏng vấn viết mã và sẽ chấp nhận như một câu trả lời đúng TLDR. Giải pháp ở dưới cùng của bài viết Vấn đềTạo một hàm chấp nhận một mảng và một mục và đếm số lần mục đó xuất hiện trong mảng. Đừng bỏ qua cách viết hoa, dấu chấm câu hoặc dấu cách ví dụ itemCounter(["hello", [["Hello", "hello"], [["Hello"]], "Hello", "world"]], "hello"); // 2 itemCounter([["A", "A", "A", "A", "A", "a"], ["a", "A", "A", "A", "A", "A"], ["A", "a", "A", "A", "A", "A"], ["A", "A", "A", "a", "A", "A"]], "a"); // 4 itemCounter([1, 2, [3], [4, 5], [4, [[6, 7], 4]]], 4); // 3 itemCounter([1, 2, [3, 11], [4, 5], [4, [[6, 7], 4]]], 10) // 0 Giải phápHãy viết ra những gì chúng ta sẽ cần phải làm
Giải pháp 1Đầu tiên chúng ta cần tạo một hàm chấp nhận một mảng và một mục const itemCounter = (array, item) => { //create a variable for a counter //flatten the array //loop through the array //every time the item is found in that array increment the counter //return the counter at the end } Tạo một biến sẽ giữ một bộ đếm const itemCounter = (array, item) => { let counter = 0 //flatten the array //loop through the array //every time the item is found in that array increment the counter //return the counter at the end } Chúng ta cần làm phẳng mảng và vì chúng ta không biết có bao nhiêu mảng lồng nhau nên chúng ta sẽ vượt qua. phẳng () Vô cực. . flat() sẽ làm phẳng một mảng bằng số lần bạn chuyển đến nó. Vì chúng tôi không biết bao nhiêu lần nên chúng tôi sẽ vượt qua Infinity, điều này sẽ làm phẳng mảng cho đến khi nó hoàn toàn bằng phẳng const itemCounter = (array, item) => { let counter = 0 array.flat(Infinity) //loop through the array //every time the item is found in that array increment the counter //return the counter at the end } Chúng tôi muốn lặp qua mảng đã được làm phẳng vì vậy tôi sẽ xâu chuỗi một. forEach trên. phẳng(). Điều này rất giống với vòng lặp for chỉ khác ở cú pháp. Để đọc thêm về nó, hãy xem trang MDN này ________số 8_______ Nếu mục mà chúng tôi hiện đang truy cập trong vòng lặp forEach khớp với mục được chuyển, chúng tôi muốn tăng bộ đếm. Nếu không, chúng tôi muốn tiếp tục vòng lặp const itemCounter = (array, item) => { let counter = 0 array.flat(Infinity).forEach(x => { if(x == item){ counter++ } }); //return counter } Cuối cùng nhưng không kém phần quan trọng, chúng ta cần trả lại quầy const itemCounter = (array, item) => { let counter = 0 array.flat(Infinity).forEach(x => { if(x == item){ counter++ } }); return counter } Giải pháp 2Đầu tiên chúng ta cần tạo một hàm chấp nhận một mảng và một mục và làm phẳng mảng. Điều này sẽ giống như giải pháp trước đó const itemCounter = (array, item) => { array.flat(Infinity) //filter the array by the item that was passed in //get the length of that array } Để lọc mảng chúng ta sẽ sử dụng. lọc(). Nếu bạn không quen với nó, bạn có thể xem trang MDN này nhưng nó tạo ra một mảng mới gồm các phần tử đáp ứng các tiêu chí trong hàm mà bạn chuyển nó const itemCounter = (array, item) => { array.flat(Infinity).filter(currentItem => currentItem === item) //get the length of that array } Bây giờ chúng ta chỉ cần lấy chiều dài. Tôi cũng sẽ dọn dẹp nó một chút và chúng tôi nhận được điều này const itemCounter = (array, item) => array.flat(Infinity).filter(currentItem => currentItem == item).length; Phần kết luậnTrong trường hợp này, hiệu suất cho mỗi là như nhau. Tôi thích giải pháp thứ hai vì nó ít mã hơn và vẫn dễ đọc nhưng cả hai giải pháp đều tốt. Dưới đây là kết quả jsbench của tôi cho những ai tò mò Tôi hy vọng bạn đã vui vẻ với cái này. Vui lòng để lại giải pháp của bạn mà bạn đã đưa ra trong phần bình luận. Nếu bạn có bất kỳ thử thách nào bạn muốn hoàn thành, hãy để lại điều đó trong các bình luận bên dưới, bạn có thể thấy nó xuất hiện. Nếu bạn muốn nhận thử thách qua email cho bạn mỗi ngày vào buổi sáng và thông báo khi giải pháp được đăng, hãy đăng ký bên dưới Làm cách nào để đếm các phần tử nhất định trong mảng JavaScript?Để đếm một số phần tử nhất định trong một mảng trong JavaScript, hãy sử dụng phương thức “filter()”, phương thức “reduce()” hoặc vòng lặp “for” truyền thống. filter() method filters the elements that match the specified element, while the reduce() method or the for loop gives the total number of occurrences of the particular element.
Làm cách nào để đếm số lần xuất hiện trong JavaScript?Trong JavaScript, chúng ta có thể đếm số lần xuất hiện của chuỗi trong một chuỗi bằng cách đếm số lần chuỗi xuất hiện trong chuỗi . JavaScript cung cấp một hàm match(), được sử dụng để tạo ra tất cả các lần xuất hiện của một chuỗi trong một mảng.
Làm cách nào để tìm số phần tử lặp lại trong một mảng JavaScript?Để đếm các giá trị trùng lặp, . lặp lại mảng bằng foreach() Thêm số lượng của từng phần tử trong một tập hợp kết hợp và thêm số lượng vào chỉ mục đó Nếu chỉ mục phần tử đã tồn tại, hãy tăng số lượng trong mỗi lần lặp lại. Khác, khởi tạo số đếm thành 1 |