Как использовать L oop в функции, которая принимает два параметра, массив и число - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь решить проблему ниже, используя для l oop.

Написать функцию, которая добавляет элемент в конец массива.

Однако, элемент должен добавляться, только если он еще не находится в массиве.

Например:

Add([1, 2], 3) должен возвращать [1, 2, 3], а add([1, 2], 2) должен возвращать [1, 2].

Вот моя попытка: любая помощь приветствуется.

 function add(arr, num) {

    var newArr = arr.slice();

    for (i = 0; i <= arr.length-1; i++)

     if (arr[i] !== num)
        {
         return newArr.push(num);

        }

     else {
            return arr;
          }
     }

Ответы [ 3 ]

0 голосов
/ 13 апреля 2020

Попробуйте следующим образом:

function add (arr, num) {    
    for (i = 1; i <= arr.length; i++) {
        if (arr[i] == num) 
            return arr;
    } 
    return arr.push(num);
}

Тест:

arr = [6, 10, 12, 25]

add(arr,101)

console.log(arr); 
0 голосов
/ 13 апреля 2020
  1. Сначала преобразуйте введенные числа для возможностей более одного ввода, используя параметр отдыха [... num] и сохраните его в переменной searchNum .
  2. Затем l oop через searchNum или введенные числа с помощью map
  3. Затем необязательная сортировка массива, но рекомендуется сортировать, кроме как иначе, потому что введенные числа могут входить, но без определенного порядка
  4. После этого мы фильтруем введенные числа чтобы проверить, имеет ли наш массив путем индексации уже порядковый номер введенного нами номера (а), если он не равен (-1), то мы хотим добавить в массив sh текущий элемент (введенное число). Иначе, просто верните наш массив, потому что значение нашего индекса изменится на true (1) и не останется как false (-1).
  5. Продолжайте цикл, пока все введенные числа не вернут true.
    let add = (arr, ...num) => {
        let searchNum = [...num]
        searchNum.map(item => item)
        .sort((a, b) => a - b)
        .filter(item => {
            if (arr.indexOf(item) === -1) {
                arr.push(item)
            } else {
                return arr
            }
        })
        return arr
    }
    let addResult = add([1, 2],3,9,4,3,5) // [1, 2, 3, 4, 5, 9]
    console.log(addResult)
0 голосов
/ 13 апреля 2020
function checkNum (arr, num) {    
    for (i = 1; i <= arr.length; i++){
        if (arr[i] == num) 
            return arr;
    } 
    return arr.push(num);
}

чтобы проверить это:

arr=[1,2,3]
checkNum(arr,3)
arr.forEach(function(entry) {
    console.log(entry);
});
...