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

Hình thành và kết hợp các chuỗi của một mảng dựa trên một chuỗi ngẫu nhiên trong JavaScript

Giả sử, chúng ta có một mảng chuỗi chứa một số tên như thế này -

const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];

Và một chuỗi ký tự ngẫu nhiên như thế này -

const str = 'lsoaakjm';

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng và chuỗi như vậy làm hai đối số.

Sau đó, hàm, đối với mỗi phần tử của mảng phải kiểm tra xem phần tử cụ thể đó có thể được tạo hoàn toàn từ chuỗi được cung cấp dưới dạng đối số thứ hai hay không.

Nếu điều kiện này thỏa mãn cho bất kỳ phần tử nào của mảng, chúng ta nên trả về phần tử đó, nếu không, chúng ta sẽ trả về một chuỗi trống.

Ví dụ

Sau đây là mã -

const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];
const str = 'lsoaakjm';
const initialise = (str = '', map) => {
   for(let i = 0; i < str.length; i++){
      map[str[i]] = (map[str[i]] || 0) + 1;
   };
};
const deleteAll = map => {
   for(key in map){
      delete map[key];
   };
};
const checkForFormation = (arr = [], str = '') => {
   const map = {};
   for(let i = 0; i < arr.length; i++){
      const el = arr[i].toLowerCase();
      initialise(str, map);
      let j;
      for(j = 0; j < el.length; j++){
         const char = el[j];
         if(!map[char]){
            break;
         }else{
            map[char]--;
         }
      };
      if(j === el.length){
         return arr[i];
      };
      deleteAll(map);
   }
   return '';
};
console.log(checkForFormation(arr, str));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

Kamal