2

同じ名前のいくつかのエントリの配列があります。すべてのエントリには場所がありますが、1つは空です。同じユーザーの配列のすべてのエントリに場所の同じ値を保存したいと思います。どうやってやるの?

      array=[{
                    user: angelos,
                    user_id: 121212,
                    date: 12/12/12,
                    profile_img: cfdf,
                    text: nhkjhgjtdkghd,
                    url: g.htm,
                    location:Romania
                },{
                    user: angelos,
                    user_id: 121212,
                    date: 12/12/12,
                    profile_img: cfdf,
                    text: nhkjhgjsdfsadstdkghd,
                    url: g.htm,
                    location:""
                },{
                    user: Mike,
                    user_id: 121212,
                    date: 12/12/12,
                    profile_img: cfdf,
                    text: nhkjhgjtdkghd,
                    url: g.htm,
                    location:New York
                },{
                    user: Mike,
                    user_id: 121212,
                    date: 12/12/12,
                    profile_img: cfdf,
                    text: nhkjhgjsdfsadstdkghd,
                    url: g.htm,
                    location:""
                }];
4

1 に答える 1

1

まず、ユーザーごとに、空でない場所を保存します。user -> location次に、2 番目のパスで、保存されたマップに基づいて空の場所を設定します。

var userLocationMap = {};
for (var i = 0; i < array.length; i++) {
  if (array[i].location) {
    userLocationMap[array[i].user] = array[i].location;
  }
}

for (var i = 0; i < array.length; i++) {
  if (!array[i].location) {
    array[i].location = userLocationMap[array[i].user];
  }
}
于 2012-08-19T11:49:25.230 に答える