<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nurbek Malikov</title>
    <description>The latest articles on DEV Community by Nurbek Malikov (@nurbekmalikov).</description>
    <link>https://dev.to/nurbekmalikov</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1006676%2Ff52aacb8-aae0-4080-869a-853e58046e20.jpg</url>
      <title>DEV Community: Nurbek Malikov</title>
      <link>https://dev.to/nurbekmalikov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nurbekmalikov"/>
    <language>en</language>
    <item>
      <title>🤯new hash function method to avoid collisions!</title>
      <dc:creator>Nurbek Malikov</dc:creator>
      <pubDate>Mon, 21 Oct 2024 06:11:44 +0000</pubDate>
      <link>https://dev.to/nurbekmalikov/new-hash-function-method-to-avoid-collisions-5ik</link>
      <guid>https://dev.to/nurbekmalikov/new-hash-function-method-to-avoid-collisions-5ik</guid>
      <description>&lt;p&gt;class Hashing {&lt;br&gt;
  constructor() {&lt;br&gt;
    this.table = new Array(127);&lt;br&gt;
    this.size = 0;&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;// indexing every item&lt;br&gt;
  _hash(key) {&lt;br&gt;
    let position = 0;&lt;br&gt;
    for (let i = 0; i &amp;lt; key.length; i++) {&lt;br&gt;
      position += key.charCodeAt(i);&lt;br&gt;
    }&lt;br&gt;
    return position % this.table.length;&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;// put item to the table&lt;br&gt;
  set(key, value) {&lt;br&gt;
    let index = this._hash(key);&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// if key equal to old item's key and values also equal or push it behind
if (this.table[index]) {
  for (let i = 0; i &amp;lt; this.table[index].length; i++) {
    if (this.table[index][i][0] === key) {
      this.table[index][i][1] = value;
      return;
    }
  }
  this.table[index].push([key, value]);
} else {
  this.table[index] = [];
  this.table[index].push([key, value]);
}
this.size++;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;get(key) {&lt;br&gt;
    const target = this._hash(key);&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (this.table[target]) {
  for (let i = 0; i &amp;lt; this.table.length; i++) {
    if (this.table[target][i][0] === key) {
      return this.table[target][i][1];
    }
  }
}
return undefined;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;remove(key) {&lt;br&gt;
    let index = this._hash(key);&lt;br&gt;
    if (this.table[index] &amp;amp;&amp;amp; this.table[index].length) {&lt;br&gt;
      for (let i = 0; i &amp;lt; this.table.length; i++) {&lt;br&gt;
        if (this.table[index][i][0] === key) {&lt;br&gt;
          this.table[index].splice(i, 1);&lt;br&gt;
          this.size--;&lt;br&gt;
          return true;&lt;br&gt;
        }&lt;br&gt;
      }&lt;br&gt;
    }&lt;br&gt;
    return false;&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;display() {&lt;br&gt;
    this.table.forEach((values, index) =&amp;gt; {&lt;br&gt;
      const chainded = values.map(([key, value]) =&amp;gt; &lt;code&gt;[${key}: ${value}]&lt;/code&gt;);&lt;br&gt;
      console.log(&lt;code&gt;${index} : ${chainded}&lt;/code&gt;);&lt;br&gt;
    });&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

</description>
    </item>
    <item>
      <title>how hash functions work in javascript</title>
      <dc:creator>Nurbek Malikov</dc:creator>
      <pubDate>Sat, 19 Oct 2024 05:09:17 +0000</pubDate>
      <link>https://dev.to/nurbekmalikov/how-hash-functions-work-in-javascript-b5p</link>
      <guid>https://dev.to/nurbekmalikov/how-hash-functions-work-in-javascript-b5p</guid>
      <description>&lt;p&gt;3 basic methods:&lt;br&gt;
1-method put(key, value);&lt;br&gt;
2-method remove(key);&lt;br&gt;
3-method get(key);&lt;br&gt;
here is basic code:&lt;br&gt;
  function HashTable() {&lt;br&gt;
  let table = [];&lt;/p&gt;

&lt;p&gt;let looselooseHash = function (key) {&lt;br&gt;
    let hash = 0;&lt;br&gt;
    for (let i = 0; i &amp;lt; key.length; i++) {&lt;br&gt;
      hash += key.charCodeAt(i);&lt;br&gt;
    }&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;return hash % 37;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;this.put = function (key, value) {&lt;br&gt;
    let position = looselooseHash(key);&lt;br&gt;
    console.log(position + " - " + key);&lt;br&gt;
    table[position] = value;&lt;br&gt;
  };&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;let table = new HashTable();&lt;br&gt;
table.put("nurbekjon", "nur.softwaredev");&lt;br&gt;
table.put("nurbekjo", "&lt;a href="mailto:nurbek.malikov@gmail.com"&gt;nurbek.malikov@gmail.com&lt;/a&gt;");&lt;br&gt;
table.put("azamat", "&lt;a href="mailto:azam@gmail.com"&gt;azam@gmail.com&lt;/a&gt;");&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
