2016-04-29 7 views
1

オブジェクトのタブを作成し、forループを使用して別のオブジェクトのこのタブ値に渡したいと思います。オブジェクトのマイタブ:forループオブジェクトのanglejsにデータをプッシュ

data4 = [{meal_id : '' ,amount : '' }] 

for i in [0...$scope.mealsList.length] 
      data4[i].meal_id = $scope.mealsList[i].id 
      data4[i].amount = $scope.mealsList[i].amount 

$scope.mealsListは私がコピーしたいオブジェクトのタブです。

は、今私は、エラーています、私は間違って何を

Cannot set property 'meal_id' of undefined 

あなたは私を伝えることができるのでしょうか?

ps:私の言語スキルには申し訳ありませんが、あなたがすべてを理解していただければ幸いです。

答えて

2

あなたは$scope.mealsListの長さにわたって反復しますが、data4から値を取得します。それらの長さが同じでない場合(問題と思われる)、逆参照するときは未定義になりますdata[i]

あなたは何をしたいのかよく分かりませんが、data4のすべての値を置き換えるので、$ scope.mealsListをdata4に変更したいようです。

この場合、mealsListの値を必要なものに変更してdata4を設定するだけです。

var result = map($scope.mealsList, function(item) { return { meal_id: item.id, amount: item.amount };}); 
console.log('mapped: ', result); 
data4 = result; 

function map(arr, fn) { 
    var res = []; 
    for (var i = 0; i < arr.length; ++i) { 
    res.push(fn(arr[i])); 
    } 
    return res; 
} 
+0

ニースの男!ありがとう、それは仕事です! :) –

0
for i in [0...$scope.mealsList.length]{ 
      //if you want to delete some properties 'prop' form meaList object use this: 
      //delete $scope.mealsList[i].prop0 
      //delete $scope.mealsList[i].prop1 
      data4.push($scope.mealsList[i]) 
} 
関連する問題