我想遍历数组并将值作为参数传递给方法。
function getAll() {
urls = [contactUrl, accountUrl, assestUrl];
nodes = ['#contactData', '#accountData', '#assetData'];
list = [$noContacts, $noAccounts, $noAsset];
//Todo
search(url, node, list);
}
例如:在第一次迭代中:search(contactUrl, '#contactdata', $noContacts)
处理此问题的最佳方法是什么?
答案 0 :(得分:1)
您可以按照以下简单方法进行操作:
for (let i = 0; i < urls.length; i++) {
search(urls[i], nodes[i], list[i]);
}
当然,这考虑到您的数组长度相同。如果您想走到最短的数组,也可以这样做:
const len = Math.min(urls.length, nodes.length, list.length);
然后迭代直到i < len
。
答案 1 :(得分:0)
假设所有数组的长度相同:
urls.forEach((url, index) => {
search(url, nodes[index], list[index]);
});
答案 2 :(得分:0)
我想您会希望返回一系列搜索结果。在这种情况下,您可以使用这样的地图功能
$user = Auth::user();
return Recipe::where('disease_id', $user->id)->get();
答案 3 :(得分:0)
您可以按照其他答案所述走简单的迭代路线。但是,这要求数组的长度都相同,但更重要的是,这似乎是重构一点的绝好机会。如果这三个数组如此紧密地耦合并通过索引相关联,也许应该将它们变成单个对象数组?
function getAll() {
let searches = [
{ url: contactUrl, node: '#contactData', list: $noContacts },
{ url: accountUrl, node: '#accountData', list: $noAccounts },
{ url: assetUrl, node: '#assetData', list: $noAsset },
];
searches.forEach(item => {
search(item.url, item.node, item.list);
});
}