Использование метода Javascript Array Filter для применения логики [duplicate]

mycolumns = ['A', 'B']
df = pd.DataFrame(columns=mycolumns)
rows = [[1,2],[3,4],[5,6]]
for row in rows:
    df.loc[len(df)] = row
3
задан Thorbjørn Reimann-Andersen 25 November 2009 в 10:40
поделиться

5 ответов

Что вы можете сделать, так это написать себе функцию, чтобы проверить, принадлежит ли элемент массиву:

function inArray(array, value) {
    for (var i = 0; i < array.length; i++) {
        if (array[i] == value) return true;
    }
    return false;
}

И просто выполните:

var arr = ["1","8","17","14","11","20","2","6"];
if (inArray(arr, 8)) {
    // change picture.src to srcpicture1
} else {
    // change picture.src to srcpicture2
}

Это много более читабельны для меня.


Для дополнительных точек вы можете добавить функцию к прототипу массива, например:

Array.prototype.has = function (value) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] === value) return true;
    }
    return false;
};

И тогда вызов будет

if (arr.has(8)) // ...

Нажав еще дальше, вы можете проверить метод indexOf() на массиве и использовать его - если нет - замените его на код выше.


PS Попытайтесь не использовать Array для имени переменной, так как он зарезервирован для фактического типа массива.

8
ответ дан Emil Ivanov 24 August 2018 в 05:04
поделиться
  • 1
    Спасибо Эмиль. Это звучит как отличная идея, я пытаюсь, если сейчас – Thorbjørn Reimann-Andersen 25 November 2009 в 10:52
  • 2
    Должен быть обнаружен метод indexOf и использовать его, если он доступен ... – James 25 November 2009 в 10:55
  • 3
    Могу ли я сказать - не модифицировать прототип прототипов прототипов? Только если вам нужно ... О вашем вопросе - здесь есть хорошая и легкая (!) Библиотека под названием underscore.js. 50 полезных методов для работы с массивом и т. Д. Попробуйте. Вам удобно работать с AND, чтобы учиться;) documentcloud.github.com/underscore – NilColor 25 November 2009 в 10:58
  • 4
    Не изменяя встроенные объекты, вы теряете половину цели JavaScript. Это можно сделать ответственно. – Justin Johnson 25 November 2009 в 11:27

Если у вас есть уникальные ключи, и более быстрое извлечение - это то, что вам очень нравится, вы можете использовать карту вместо массива (если есть жесткий случай использования массива, то это не сработает курс). Если вы используете карту, вы просто проверяете «if (num in arr)».

0
ответ дан Abhishek 24 August 2018 в 05:04
поделиться

Вы можете отсортировать массив сначала, а затем проверить массив только до той точки, в которой число будет в массиве, если бы оно существовало.

0
ответ дан Russ Cam 24 August 2018 в 05:04
поделиться

Почему бы вам не отменить цикл, когда найдете правильный номер:

for(x=0;x<=Array.length;x++)
{
    if(Array[x]==8) {
        //change picture.src to srcpicture1
        break;
    }
}
3
ответ дан Soufiane Hassou 24 August 2018 в 05:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: