Массив jQuery не работает - работает только первый элемент массива? [Дубликат]

Обертка вокруг GNU ld, которая не поддерживает скрипты компоновщика

. Некоторые .so-файлы на самом деле являются GNU ld ссылками-компоновщиками , например. Файл libtbb.so является текстовым файлом ASCII с этим содержимым:

INPUT (libtbb.so.2)

Некоторые более сложные сборки могут не поддерживать это. Например, если вы включаете -v в параметры компилятора, вы можете видеть, что mainwin gcc wrapper mwdip отбрасывает файлы команд сценария компоновщика в подробном списке результатов библиотек для ссылки. Простая работа вместо файла командной строки ввода сценария компоновщика вместо копии (или символической ссылки), например

cp libtbb.so.2 libtbb.so

Или вы можете заменить аргумент -l полным путем .so, например вместо -ltbb сделать /home/foo/tbb-4.3/linux/lib/intel64/gcc4.4/libtbb.so.2

16
задан hakre 9 September 2013 в 13:51
поделиться

2 ответа

Вам нужно сделать это:

if( $.inArray('Aqua', arrVals) > -1 ) {

или это:

if( $.inArray('Aqua', arrVals) !== -1 ) {

Метод $.inArray() возвращает значение 0 индекс элемента. Если нет элемента, он возвращает -1, который оператор if() будет считать true.

Из документов:

Поскольку JavaScript обрабатывает 0 как (т.е. 0 == false, но 0! == false), если мы проверяем наличие значения внутри массива, нам нужно проверить, не равен ли он (или больше) -1.


EDIT: вместо того, чтобы вставлять оба значения в массив как объект, просто используйте один или другой, так что у вас есть массив строк, из которого вы можете создать множественный селектор.

Один из способов:

  // Create an Array from the "value" or "text" of the select options
var arrVals = $.map( $dd[0].options, function( opt, i ){
    return opt.value || opt.text;
});

  // Build a multiple selector by doing a join() on the Array.
$( "#" + arrVals.join(',#') ).show();

Если массив выглядит так:

['Army','Aqua','Bread'];

Результирующий селектор будет выглядеть так:

$( "#Army,#Aqua,#Bread" ).show();
51
ответ дан user113716 25 August 2018 в 02:09
поделиться

ES6 на помощь! Хотя это не jQuery, я думал, что стоит отвечать будущим читателям ...

ES6 вводит .includes(), который работает так, как вы думаете $.inArray СЛЕДУЕТ работать:

const myArray = ["a", "b", "c"];

console.log(myArray.includes("a")) /* true */
console.log(myArray.includes("d")) /* false */

Array.prototype.includes ()

0
ответ дан Darren Sweeney 25 August 2018 в 02:09
поделиться
Другие вопросы по тегам:

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