Jquery, проверка, существует ли значение в массиве или нет
208176 просмотра
5 ответа
Я верю, что этот вопрос будет довольно легким для тех, кто играл с java script / jquery.
var arr = new Array();
$.map(arr, function() {
if (this.id == productID) {
this.price = productPrice;
}else {
arr.push({id: productID, price: productPrice})
}
}
Я предполагаю, что приведенный выше код объясняет то, что я хочу, очень простым способом. Я бы предположил, что этот $ .map будет работать так, но, к сожалению, я не смог получить результаты с этим.
Какой самый простой и элегантный способ сделать это? Действительно ли я просматриваю весь массив только для того, чтобы узнать, есть ли значение ключа или нет?
У Jquery есть что-то подобное isset($array['key'])
?
РЕДАКТИРОВАТЬ
Я пытался использовать inArray, но он продолжает добавлять объект в массив, даже если есть совпадение.
if ( $.inArray(productID, arr) > -1) {
var number = $.inArray(productID, arr);
orderInfo[number].price = parseFloat(productPrice);
}else {
orderInfo.push({id:productID, price:parseFloat(productPrice)});
}
Автор: Revenant
Источник
Размещён: 12.11.2019 09:08
Ответы (5)
22 плюса
Если вы хотите сделать это с помощью .map()
или просто хотите знать, как это работает, вы можете сделать это следующим образом:
var added=false;
$.map(arr, function(elementOfArray, indexInArray) {
if (elementOfArray.id == productID) {
elementOfArray.price = productPrice;
added = true;
}
}
if (!added) {
arr.push({id: productID, price: productPrice})
}
Функция обрабатывает каждый элемент отдельно. .inArray()
Предложено в других ответах, вероятно, более эффективный способ сделать это.
213 плюса
http://api.jquery.com/jQuery.inArray/
if ($.inArray('example', myArray) != -1)
{
// found it
}
Автор: jbabey
Размещён: 24.10.2011 07:39
19 плюса
JQuery имеет inArray
функцию:
http://api.jquery.com/jQuery.inArray/
Автор: BZink Размещён: 24.10.2011 07:3815 плюса
if ($.inArray('yourElement', yourArray) > -1)
{
//yourElement in yourArray
//code here
}
Ссылка: Jquery Array
Метод $ .inArray () похож на нативный метод JavaScript .indexOf () в том, что он возвращает -1, если не находит соответствия. Если первый элемент в массиве соответствует значению, $ .inArray () возвращает 0.
Автор: Hueston Rido Размещён: 18.11.2014 01:397 плюса
Пытаться jQuery.inArray()
Вот ссылка jsfiddle, использующая тот же код: http://jsfiddle.net/yrshaikh/SUKn2/
Метод $ .inArray () похож на нативный метод JavaScript .indexOf () в том, что он возвращает -1, если не находит соответствия. Если первый элемент в массиве соответствует значению, $ .inArray () возвращает 0
Пример кода :
<html>
<head>
<style>
div { color:blue; }
span { color:red; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div>"John" found at <span></span></div>
<div>4 found at <span></span></div>
<div>"Karl" not found, so <span></span></div>
<div>
"Pete" is in the array, but not at or after index 2, so <span></span>
</div>
<script>
var arr = [ 4, "Pete", 8, "John" ];
var $spans = $("span");
$spans.eq(0).text(jQuery.inArray("John", arr));
$spans.eq(1).text(jQuery.inArray(4, arr));
$spans.eq(2).text(jQuery.inArray("Karl", arr));
$spans.eq(3).text(jQuery.inArray("Pete", arr, 2));
</script>
</body>
</html>
Выход:
"Джон" найден в 3 4 найдено в 0 "Карла" не найдено, поэтому -1 «Пит» находится в массиве, но не в индексе 2 или после него, поэтому -1Автор: Yasser Размещён: 04.02.2013 08:09
Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- jquery Прокрутка переполненных DIV с помощью JavaScript
- jquery Экранирование строк HTML с помощью jQuery
- jquery Как сравнить HTML-сущность с JQuery
- jquery Есть ли функция "существует" для jQuery?
- jquery Как удалить все параметры в окне выбора, а затем добавить один вариант и выбрать его с помощью jQuery?
- arrays Как удалить дубликаты из массива C #?
- arrays Как определить размер моего массива в C?
- arrays Каков наилучший способ конвертировать массив в хеш в Ruby
- arrays Сравнение двухбайтовых массивов в .NET
- arrays Можно ли выполнять параллельные обходы в MATLAB так же, как в Python?
- loops Цикл C # - разрыв против продолжения
- loops Haxe итерация на динамическом
- loops Продолжать считать вредным?
- loops В чем разница между функциями range и xrange в Python 2.X?
- loops Как мне перечислить перечисление в C #?