Найти число в массиве чисел
У меня есть массив A[1,2];
Мне нужно проверить есть ли число 2 в массиве A ?. Как это можно сделать, подскажите, пожалуйста? Мне нужно чтобы функция возвращала результат, а не ввиде alert |
var b = false;
a.forEach(function (item) {
if (context.controls.FormComboBox.getValue().Code != item.FormOfFinancialStatement.Code) b = true;
});
return b;
}
return true;
a - это массив. У меня есть датагрид где лежит 2 значения. Я хочу добавить 3 значение. Открывается экран и я в списке должен выбрать значение. Если оно есть в датагриде, то не добавлять значение в датагрид |
Михаил94Связь,
https://developer.mozilla.org/ru/doc...cts/Array/find |
Можно пример ?
|
Михаил94Связь,
indexOf |
function A() {
var a = context.parameters.FormOfFinancialStatement.getValue();
if (a != undefined) {
var result = a.find(function (item) {
return context.controls.FormComboBox.getValue().Code != item.FormOfFinancialStatement.Code
});
}
else {
return true;
}
}
Почему мне функция возвращает undefined? |
Цитата:
|
Телепатия сложная вещь, не все ею владеют
function A() {
var a = [1,2,3],
find = 3;
return -1 != a.indexOf(find) ? find : true;
}
|
function GetCompanyProfile988ResponseAdditionalDocumentsViewOnSaveClick(context, args) {
if (validateObligatoryFields() && A()) {
context.global.executeAction(
context,
{
SaveAction: {
DestinationValue: {
Source: 'MainDataSource'
}
}
}
);
}
else {
toastr.warning('dadas')
}
function validateObligatoryFields() {
var additionalDocuments = context.dataSources.MainDataSource.getSelectedItem();
var obligatoryFields = [
{ field: additionalDocuments.FormOfFinancialStatement, caption: 'Форма бухгалтерской отчетности' },
{ field: additionalDocuments.NameOfFinancialStatement, caption: 'Наименование формы бухгалтерской отчетности в произвольной форме' },
{ field: additionalDocuments.Attachment, caption: 'Прикрепленный файл' }
];
return ValidateGkhObligatoryFields(obligatoryFields);
}
function A() {
var a = context.parameters.FormOfFinancialStatement.getValue();
if (a != undefined) {
return a.reduce(function(p, e, i){
if(p >= 0)
return p;
return (context.controls.FormComboBox.getValue().Code != e.FormOfFinancialStatement.Code) ? i : p;
}, -1)
}
else {
return true;
}
}
}
|
Переписал по другому, но всеравно не работает. context.controls.FormComboBox.getValue().Code - это выбранное значение в комбобоксе. А это e.FormOfFinancialStatement.Code - значение, которое находится в DataGrid. Я проверяю, если выбранное значение не равно значениям которые лежат в DataGrid, то я могу добавить значение, иначе нет. Просто у меня должны быть значения которые не дублируются
|
Ребят, помогите, пожалуйста. Вроде бы простая задака, а я уже с ней очень долго бьюсь
|
А типы переменных какие? Лучше просто написать небольшой пример массива context.parameters.FormOfFinancialStatement.getVal ue(); и context.controls.FormComboBox.getValue().Code
|
Я прислал скрипт. Всмысле небольшой пример массива?
|
Содержимое переменной a. Через консоль можно посмотреть. Иными словами, если бы было понятно что подается на вход, то можно было бы помочь. А так это просто кусок скрипта.
|
a- массив. Туда приходят объекты
|
Если у вас A() всё равно возвращает NaN, значит одно из значений возвращается как NaN при сравнение оно не равно ничему и будет возвращаться функцией — проверьте содержимое массива и значение context.controls.FormComboBox.getValue().Code
function A() {
var a = context.parameters.FormOfFinancialStatement.getValue();
if (a != undefined) {
for (var i = a.length - 1; i >= 0; --i) {
if (a[i].FormOfFinancialStatement.Code != context.controls.FormComboBox.getValue().Code) return i;
}
return -1;
}
return true;
}
|
Значение context.controls.FormComboBox.getValue().Code() равен выбранному значению в комбобоксе всегда.
|
Так это всё таки метод или свойство? В комбо-боксе всегда выбрано число? А что с массивом?
|
context.parameters.FormOfFinancialStatement.getVal ue() - это массив
Я по нему должен пройтись и получить значения исходя из условия if (a[i].FormOfFinancialStatement.Code != context.controls.FormComboBox.getValue().Code) context.controls.FormComboBox.getValue().Code - выбранное значение a[i].FormOfFinancialStatement.Code - элемент массива Допустим, если в комбобоксе я выбрал 1 и в массиве(датагрид) есть это значение, то сохранять его не надо, иначе надо. |
Мы не можем проверить значения за вас, берите отладчик и смотрите что происходит и что содержится в структурах. Примеры вам дали рабочие и на вопрос о проверке содержимого массивов ответили.
|
| Часовой пояс GMT +3, время: 23:18. |