2017-06-20 5 views
1
vm.array1.push(content1); 
vm.array2.push(content2); 

私は上記の2つの配列に、各アレイのデータモーダル私は関数に配列2の最初の要素のオブジェクトとARRAY1の最初の要素のオブジェクトのみを渡す必要があり、この2つの配列を同時にループし、各配列の最初の要素をangle jsを使って一度に関数に渡します。

vm.array1=[object1,object2,object3] 
vm.array2=[object1,object2,object3] 

ように見えます。

vm.save(a,b){ 
//save functionality success by calling API 
} 

変数、bはの最初の要素が含まれている必要があり、両方同時に第3の第二の要素に続くアレイ...

どのようにangularJSを使用して機能するオブジェクトだけではなく、配列を渡すことができますか?

+0

あなたは、ループ内の関数を呼び出すことが意味するのですか? – brk

+0

いいえ...関数はループの外で呼び出される必要があります@ brk – HKI345

+0

ok then関数はいつ第2要素で呼び出されますか? – brk

答えて

1

同じ長さのものです。これはうまくいくはずです。

var vm = { 
 
    save: function(a, b) { 
 
    console.log(a, b) 
 
    } 
 
}; 
 
vm.array1 = [{ 
 
    id: 1 
 
}, { 
 
    id: 2 
 
}, { 
 
    id: 3 
 
}]; 
 
vm.array2 = [{ 
 
    id: 4 
 
}, { 
 
    id: 5 
 
}, { 
 
    id: 6 
 
}]; 
 

 
vm.array1.forEach(function(a1, i) { 
 
    vm.save(a1, vm.array2[i]); 
 
});

+0

ありがとう.. ..それは@ Maaz作品 – HKI345

0

最も簡単な場合、次の操作を行うことができます。

do{ 
    vm.save(vm.array1.shift(), vm.array2.shift()){ 
    //save functionality success by calling API 
    } 
}while(vm.array1.length>0) 
0

Plzをチェックは、これが仕事になることがあり(このソリューションは、あなたの配列を変更します): - 私はarray1を推測し、array2てる

for(var i=0;i<=vm.array1.length;i++) 
{ 
    for(var j=0;j<=vm.array2.length;j++) 
    { 
     if(i==j) 
     vm.save(vm.array1[i].content1,vm.array2[j].content2){ 
     //save functionality success by calling API 
     } 
    } 
} 
+0

これは、i回ではなく、j回繰り返すことができるので、非常に非効率的ではありませんか? –

関連する問題