Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จัดเก็บจำนวนเต็มตามลำดับโดยใช้ JavaScript


สมมติว่าเรามีสตริงยาวที่แสดงตัวเลขเช่นนี้ −

const str = '11222233344444445666';

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงดังกล่าว ฟังก์ชันของเราควรจะส่งคืนอ็อบเจ็กต์ที่ควรกำหนดคุณสมบัติ "id" ที่ไม่ซ้ำกันให้กับแต่ละหมายเลขที่ไม่ซ้ำในสตริงและอีกหนึ่งคุณสมบัติ "count" ที่เก็บการนับจำนวนครั้งที่ตัวเลขปรากฏในสตริง

ดังนั้น สำหรับสตริงข้างต้น ผลลัพธ์ควรมีลักษณะดังนี้ −

const output = {
   '1': { id: '1', displayed: 2 },
   '2': { id: '2', displayed: 4 },
   '3': { id: '3', displayed: 3 },
   '4': { id: '4', displayed: 7 },
   '5': { id: '5', displayed: 1 },
   '6': { id: '6', displayed: 3 }
};

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const str = '11222233344444445666';
const countNumberFrequency = str => {
   const map = {};
   for(let i = 0; i < str.length; i++){
      const el = str[i];
      if(map.hasOwnProperty(el)){
         map[el]['displayed']++;
      }else{
         map[el] = {
            id: el,
            displayed: 1
         };
      };
   };
   return map;
};
console.log(countNumberFrequency(str));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

{
   '1': { id: '1', displayed: 2 },
   '2': { id: '2', displayed: 4 },
   '3': { id: '3', displayed: 3 },
   '4': { id: '4', displayed: 7 },
   '5': { id: '5', displayed: 1 },
   '6': { id: '6', displayed: 3 }
}