Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Найти число в массиве чисел (https://javascript.ru/forum/misc/63365-najjti-chislo-v-massive-chisel.html)

Михаил94Связь 03.06.2016 10:29

Найти число в массиве чисел
 
У меня есть массив A[1,2];
Мне нужно проверить есть ли число 2 в массиве A ?. Как это можно сделать, подскажите, пожалуйста?
Мне нужно чтобы функция возвращала результат, а не ввиде alert

Михаил94Связь 03.06.2016 10:40

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 значение. Открывается экран и я в списке должен выбрать значение. Если оно есть в датагриде, то не добавлять значение в датагрид

destus 03.06.2016 10:59

Михаил94Связь,
https://developer.mozilla.org/ru/doc...cts/Array/find

Михаил94Связь 03.06.2016 11:56

Можно пример ?

рони 03.06.2016 12:19

Михаил94Связь,
indexOf

Михаил94Связь 03.06.2016 12:34

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?

destus 03.06.2016 14:00

Цитата:

Почему мне функция возвращает undefined?
Написано же, что undefined возвращается, когда элемент не найден. Напишите сюда свой массив и искомый элемент

Botik21 03.06.2016 14:04

Телепатия сложная вещь, не все ею владеют
function A() {
	var a = [1,2,3],
		find = 3;

	return -1 != a.indexOf(find) ? find : true;
}

Михаил94Связь 03.06.2016 14:17

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;
        }
 
    }
}

Михаил94Связь 03.06.2016 14:18

Переписал по другому, но всеравно не работает. context.controls.FormComboBox.getValue().Code - это выбранное значение в комбобоксе. А это e.FormOfFinancialStatement.Code - значение, которое находится в DataGrid. Я проверяю, если выбранное значение не равно значениям которые лежат в DataGrid, то я могу добавить значение, иначе нет. Просто у меня должны быть значения которые не дублируются


Часовой пояс GMT +3, время: 07:35.