Computer >> Máy Tính >  >> Lập trình >> Javascript

Thay đổi một mảng tại chỗ bằng JavaScript splice ()

Chúng ta được yêu cầu viết một hàm, với một mảng arr và một số n, trả về các phần tử của mảng lặp lại không quá n lần. Và chúng ta phải làm tất cả những điều này mà không làm xáo trộn các chỉ số của các phần tử mong muốn. Vì vậy, hãy viết mã cho chức năng này,

Chúng tôi sẽ giữ số lượng của tất cả các phần tử trong một bản đồ băm và trong quá trình lặp lại bất cứ khi nào số lượng của bất kỳ phần tử nào vượt quá số lượng tối đa, chúng tôi sẽ nối phần tử đó. Mã cho ý chí này -

Ví dụ

const arr = [7, 26, 21, 41, 43, 2, 26, 24, 10, 26, 10, 10, 24, 35, 35,
35, 43, 26, 41, 7, 24, 24, 21, 24, 10, 35, 10, 7, 24, 7, 35, 26, 41,
35, 2, 43, 24, 2, 41, 26, 41, 7, 7, 26, 2, 10, 43, 10, 35, 41, 24, 7,
2, 2, 7, 2, 26, 24, 26, 43, 43, 21, 10, 28, 10];
const array = [12, 4, 2, 12, 32, 21, 67, 4, 32, 5];
const deleteExtra = (arr, n) => {
   const map = {};
   for(let i = 0; i < arr.length; i++){
      if(map[arr[i]]){
         if(map[arr[i]] >= n){
            arr.splice(i, 1);
            i--;
         }else{
            map[arr[i]]++;
         }
         continue;
      };
      map[arr[i]] = 1;
   }
};
deleteExtra(array, 1);
deleteExtra(arr, 2);
console.log(array);
console.log(arr);

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

[
   12, 4, 2, 32,
   21, 67, 5
]
[
   7, 26, 21, 41, 43, 2, 26,
   24, 10, 10, 24, 35, 35, 43,
   41, 7, 21, 2, 28
]