Я хотел стать более OO. Я немного развиваюсь в NetSuite, и их API-интерфейсы находятся в JS. У меня есть код ниже. Вот что делает.Становление большего количества OO для циклов JS
1) API поиска выполняет поиск по всем транзакциям, находящимся на воде.
2) Проводит все транзакции, а затем выполняет поиск всех этих транзакций, а другой выполняет поиск по ним. Причина в том, что управление API NetSuite позволяет использовать только 1000 строк с API поиска (это также можно использовать и другими способами). Также хочу сделать это таким образом, потому что будет работать в другой логике, которая сделает такой путь необходимым.
3) Затем выталкивает эти значения, количество, количество, созданное из записи в три массива. 4) Последний цикл проходит через три массива, но затем выводит из него и созданную из транзакции количество раз величины количества. Это происходит потому, что мы будем печатать их как метки для каждого элемента.
Теперь вы хотели стать более OO. Я сделал еще одну вещь, когда я зацикливал объект с помощью ключей и значений. Думал, что это было аккуратно. Мой вопрос в том, как бы вы сделали это более OO. У меня есть некоторые идеи о том, что я буду делать, но хотелось бы услышать некоторые идеи.
1) Создайте некоторые функции, которые вызовут шаг 3 и шаг 4. Поэтому каждый раз, когда он зацикливается, он вызывает функции
2) Я хотел бы что-то сделать с обратными вызовами или обещаниями. Не может быть для них использоваться в этом сценарии, но 3) Вставьте объекты в объект, а затем запустите для них метод Each.
Итак, вопрос заключается в том, как сделать этот стиль OO с помощью JavaScript.
// search APIs
filters = [];
filters[0] = new nlobjSearchFilter('location', null, 'anyof', ['23','25','20','24']);
filters[1] = new nlobjSearchFilter('mainline', null, 'is', 'true');
var columns = [];
columns[0] = new nlobjSearchColumn('tranid');
columns[1] = new nlobjSearchColumn('createdfrom');
var searchResults =[];
var searchResults = nlapiSearchRecord('itemreceipt', null, filters, columns);
tranId = [];
createdFrom = [];
quantity = [];
item = [];
data = '';
if(searchResults){
for (var i = 0; i < 5; i++){
// gets all internal IDs
var tranId = searchResults[i].getValue(columns[0]);
filtersLine = [];
filtersLine[0] = new nlobjSearchFilter('tranid', null, 'is', tranId);
filtersLine[1] = new nlobjSearchFilter('mainline', null, 'is', 'false');
var columnsLine = [];
columnsLine[0] = new nlobjSearchColumn('item');
columnsLine[1] = new nlobjSearchColumn('createdfrom');
columnsLine[2] = new nlobjSearchColumn('quantity');
var searchResultsLine =[];
var searchResultsLine = nlapiSearchRecord('itemreceipt', null, filtersLine, columnsLine);
for (var j = 0; j < searchResultsLine.length; j++){
item.push(searchResultsLine[j].getText(columnsLine[0]));
createdFrom.push(searchResultsLine[j].getText(columnsLine[1]));
quantity.push(searchResultsLine[j].getValue(columnsLine[2]));
for (var x = 0; x < quantity[j]; x++){
if(createdFrom[j] != 'undefined'){
data += item[j] + createdFrom[j] + '\n';
console.log(item[j] + ' ' + createdFrom[j].substring(16) + '\n');
}
}
}
}
}
Ваш вопрос очень неясен и слишком широк для ответа. Пожалуйста, уменьшите объем вашей проблемы до чего-то, что легко понять и подотчетно. –