1

次のような多くのオブジェクトを含む、php ファイルからの JSON 出力を受け取ります。

[
  { "home_content" : "Nam feugiat sem diam, ut fermentum orci hendrerit sit amet.",
    "home_id" : 2,
    "home_img" : "tech.png",
    "home_title" : "Latest Technologies Development"
  },
  { "home_content" : "לורם לורם",
    "home_id" : 239,
    "home_img" : "http://placehold.it/400",
    "home_title" : "שוק פירות וירקות"
  },
  { "home_content" : "New Item Content",
    "home_id" : 259,
    "home_img" : "http://www.placehold.it/100",
    "home_title" : "New Home Item"
  }
]

アプリで特定のオブジェクトを削除したいのですが、その位置を取得する方法はありhome_idますか? または、特定のオブジェクトをそのリストから区別できるようにするもの

4

3 に答える 3

3

そこにあるのはオブジェクトの配列であるため、目的のオブジェクトが見つかるまで配列をループできますhome_id

var index;
for (index = 0; index < array.length; ++index) {
    if (array[index].home_id === 2) {
        array.splice(index, 1); // Removes this entry
        break;                  // Exits the loop
    }
}
于 2013-08-23T15:55:23.263 に答える
1

あなたが持っているのは配列(JSONの解析から得られたもの)なので、正しいインデックスを見つけてスプライスする必要があります:

function delObjWithHomeId(arr, id) {
    for(var i=0; i<arr.length; i++) {
        if(arr[i].home_id === id) {
            return arr.splice(i,1);
        }
    }
}
于 2013-08-23T15:55:38.550 に答える
1

そこに投稿したのは、オブジェクトの配列です。これは重要な違いですが、JavaScript では、配列オブジェクトの型です。

ご覧のとおり、オブジェクトは、データ要素に対応する英数字のプロパティ名 (場合によってはインデックス) を持つことができます。対照的に、配列は 0 から始まる数値でインデックス付けされます。これはオブジェクトによく似ていますが、プロパティ名はすべて数字であり、すべて順番になっています。

したがって、次のようなデータを想像してください。

{
0:{ 
home_id: 2
home_title: Latest Technologies Development
home_img: tech.png
home_content: Nam feugiat sem diam, ut fermentum orci hendrerit sit amet.
},
1:{ 
home_id: 239
home_title: שוק פירות וירקות
home_img: http://placehold.it/400
home_content: לורם לורם
},
2:{ 
home_id: 259
home_title: New Home Item
home_img: http://www.placehold.it/100
home_content: New Item Content
}
}

、 、などpush()、多くのメソッドを使用して配列を操作できます。特定のものにアクセスするには、通常、それをループすることになります (正しいindexを既に知っている場合を除く)。pop()shift()

配列をループするにはいくつかの方法があり、while考えられる多くの方法の 1 つです。

var i = 0;
while(var oneItem = myArray[i++]){
    if (oneItem.home_id == theItemIdIAmLookingFor) {
        myArray.splice(i, 1);
        break;
    }
}

ドキュメンテーション

于 2013-08-23T16:01:50.793 に答える