나는 고치는 방법을 찾을 수 없다는 오류에 대해 머리를 두드리고 있습니다. 다음이 있습니다.
JSON
{"products":
[
{
"product_id" : "123",
"product_data" : {
"image_id" : "1234",
"text" : "foo",
"link" : "bar",
"image_url" : "baz"
}
},{
"product_id" : "456",
"product_data" : {
"image_id" : "1234",
"text" : "foo",
"link" : "bar",
"image_url" : "baz"
}
}
]}
및 다음 jQuery
function getData(data) {
this.productID = data.product_id;
this.productData = data.product_data;
this.imageID = data.product_data.image_id;
this.text = data.product_data.text;
this.link = data.product_data.link;
this.imageUrl = data.product_data.image_url;
}
$.getJSON("json/products.json").done(function (data) {
var allProducts = data.map(function (item) {
return new getData(item);
});
});
아직 map.data가 함수로 정의되지 않았다는 오류가 발생합니까? 이전에 사용한 코드에서 새 프로젝트로 복사했기 때문에 작동하지 않는 것이 무엇인지 알 수 없습니다. 유일한 차이점은 JSON 소스입니다. 이전 {"products":
에는 [] 대괄호 앞에 부분 이 없었습니다 . 이것이 나를 쫓아내는 것입니까?
답변
{}
JavaScript의 객체 에는 메소드가 없습니다 .map()
. 그것은 만의 배열 , []
.
업무 변화에 대한 코드의 순서에 따라서 data.map()
에 data.products.map()
있기 때문에 products
당신이에 반복 할 수있는 배열입니다.
답변
객체를 반복하는 올바른 방법은
Object.keys(someObject).map(function(item)...
Object.keys(someObject).forEach(function(item)...;
// ES way
Object.keys(data).map(item => {...});
Object.keys(data).forEach(item => {...});
답변
답변
data
배열이 아니라 제품 배열이있는 객체이므로 반복 data.products
var allProducts = data.products.map(function (item) {
return new getData(item);
});
답변
객체를 매핑하려면 Lodash를 사용할 수 있습니다. NPM 또는 Yarn을 통해 설치되었는지 확인하고 가져옵니다.
Lodash와 함께 :
Lodash는 _.mapValues
값을 매핑하고 키를 보존 하는 기능 을 제공 합니다.
_.mapValues({ one: 1, two: 2, three: 3 }, function (v) { return v * 3; });
// => { one: 3, two: 6, three: 9 }
답변
언제든지 다음을 수행 할 수 있습니다.
const SomeCall = request.get(res => {
const Store = [];
Store.push(res.data);
Store.forEach(item => { DoSomethingNeat
});
});
답변
this.$http.get('https://pokeapi.co/api/v2/pokemon')
.then(response => {
if(response.status === 200)
{
this.usuarios = response.data.results.map(usuario => {
return { name: usuario.name, url: usuario.url, captched: false } })
}
})
.catch( error => { console.log("Error al Cargar los Datos: " + error ) } )