我一直想成爲更多的面向對象。我在NetSuite中開發了一些,他們的API在JS中。我有下面的代碼。這是做什麼。成爲更多OO多個循環JS
1)搜索API搜索所有在水中的交易。
2)循環所有交易,然後搜索這些交易的每個人,它會對他們進行另一次搜索。原因是因爲NetSuite的API管理只允許使用搜索API的1000行(這也可以用其他方式)。也想這樣做,因爲將在其他邏輯中工作,這將使這種方式成爲必要。
3)然後將這些從記錄創建的值,項目,數量推送到三個數組中。 4)最後一個循環遍歷三個數組,然後打印出該項目,並從交易中創建數量值的次數。這是因爲我們將打印這些標籤作爲每個項目的標籤。
現在一直想成爲更多的面向對象。我做了另一件類似的事情,我通過對象與鍵和值進行循環。以爲這是整齊。我的問題是,你會如何做出更多的面向對象。我對我會做什麼有一些想法,但希望聽到一些想法。
1)創建一些函數,將調用步驟3和步驟4.所以每次它循環它稱爲功能
2)我想用回調或承諾做些事情。在這種情況下可能不適合他們,但是 3)將項目推入對象,然後在這些對象上運行forEach方法。
所以問題是如何使這個更多的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');
}
}
}
}
}
您的問題很不清楚,而且回答太寬泛。請將您的問題範圍縮小到易於理解和可回答的問題。 –