otrzymywanie danej litery danego wyrazu tablicy

0

piszę wyszukiwarkę, chcę zrobić taką by wyszukać wyraz, który będzie składał się z pierwszych liter wyrazów, albo z drugich itp. licząc od góry, robię teraz dla pierwszych liter i kiedy wpisuje drugą literę wyskakuje mi w firefoxie > Uncaught TypeError: tasks[i][0] is undefined> a w chromie > main.js:70 Uncaught TypeError: Cannot read properties of undefined (reading 'textContent')
at HTMLInputElement.searchTask (main.js:70)>

HTML:

<form action="">
    <input id='search' type="text">
    <button>Dodaj zadanie</button>
   </form>
   <h1>Liczba zadań: <span>0</span></h1>
   <ul>
    <li>brukselka</li>
    <li>groch</li>
    <li>batat</li>
    <li>ziemniak</li>
    <li>burak</li>
    <li>fasola</li>
    <li>marchewka</li>
    <li>pietruszka</li>
    <li>por</li>
    <li>cebula</li>
   </ul>

JavaScript:

const form = document.querySelector('form');
const inputSearch = document.getElementById('search');
const ul = document.querySelector('ul');
const liElements = document.querySelectorAll('li');
const taskNumber = document.querySelector('h1 span');

   const addTask = (e) => {
    e.preventDefault()
    const titleTask = inputSearch.value;
    if (titleTask === "") return;
    const task = document.createElement('li');
 task.innerHTML = titleTask + "<button>Usuń</button>";
  ul.appendChild(task);
    input.value = "";
  }

const searchTask = (e) => {
 const searchText = e.target.value;
 let letter = searchText[0];
 let tasks = [...liElements];
 const first = tasks[0];
 let tasks2 = tasks.filter(li => li.textContent.includes(searchText));
 console.log(tasks2.forEach(li => ul.appendChild(li)))
 if (tasks2.length == 0) {
    for (i=0; i<tasks.length; i++) {
      if (tasks[i][0].includes(searchText[i])) {
         return;
      } else {
         console.log('brak slowa')
      }
    }
 }
}
form.addEventListener('submit', addTask);
input.addEventListener('input', searchTask)
3
mistrzkrisu6 napisał(a):
  • nie zdefiniowałeś nigdzie input, do którego odwołujesz się w:
    input.addEventListener('input', searchTask)

  • po co cudujesz z
    e.target.value
    skoro możesz użyć:
    input.value
    (a to input i tak muszisz sobie zdefiniować).

  • Albo to jest jakaś niezmiernie zaawansowana składnia, której nie znam, albo zwykly babol bez sensu:
    let tasks = [...liElements]

  • jest jakiś powód, dla którego funkcji nie definiujesz po prostu za pomocą funciton?

wyszukać wyraz, który będzie składał się z pierwszych liter wyrazów, albo z drugich itp. licząc od góry

Nie mam pojęcia, co chcesz zrobić. Opisz to precyzyjniej i najlepiej podaj jakieś przykłady tego, co miałoby być zrobione.

0

@mistrzkrisu6:

piszę wyszukiwarkę, chcę zrobić taką by wyszukać wyraz, który będzie składał się z pierwszych liter wyrazów które mam w ul, albo z drugich itp. licząc od góry np. dla pierwszych liter to pierwsze 3 litery wyrazu to będzie bgb bo ma na początku bruksela, groch, batat

Ok, to rozumiem kryterium wyszukiwania. A gdzie jest tekst, w którym te bgb itp mają być wyszukiwane?

0

Czyli chcesz sprawdzić, czy na przykładowej liście:


    <li>brukselka</li>
    <li>groch</li>
    <li>batat</li>
    <li>ziemniak</li>
    <li>burak</li>
    <li>fasola</li>
    <li>marchewka</li>
    <li>pietruszka</li>
    <li>por</li>
    <li>cebula</li>

znajduje się pozycja o treści:

    <li>bgbzbfmffc</li>

?

A ta pozycja na liście o nazwie złożonej z pierwszych liter pozycji na liście to ma uwzględniać również swoją własną pierwszą literę, czyli w tym wypadku mieć postać nie bgbzbfmffc a bgbzbfmffcb?

I w ogóle jesteś pewien, że to jest właśnie to, co chcesz zrobić? Co to za zadanie w ogóle :D

0

to było zadanie rekrutacyjne, ma nie uwzględniać litery, w ogóle to miała być wyszukiwarka która sprawdza czy jest dany wyraz, czy jest w poziomie czyli właśnie to o co pytam czy jest po przekątnej, i to z listy wyrazów które się podaje hehe

0

Ty może wklej tu po prostu treść tego zadania rekrutacyjnego, a nie opisuj je po swojemu.

I nie odpowiadaj w komentarzach do postów. Komentarze są tu do pobocznych, nie związanych z głównym wątkiem uwag.

0

nie wiem czy jeszcze gdzieś mam treść tego zadania

0

1.png
2.png
3.png4.png5.png

1 użytkowników online, w tym zalogowanych: 0, gości: 1