data.map은 함수가 아닙니다.
나는 고치는 방법을 해결할 수없는 오류에 대해 머리를 두드리고 있습니다. 다음이 있습니다.
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": 부분이 없습니다. 이것이 나를 쫓아내는 것입니까?
객체는 {}
, 자바 스크립트 방법이없는에서 .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);
});
언제든지 다음을 수행 할 수 있습니다.
const SomeCall = request.get(res => {
const Store = [];
Store.push(res.data);
Store.forEach(item => { DoSomethingNeat
});
});
객체를 매핑하려면 Lodash를 사용할 수 있습니다. NPM 또는 Yarn을 통해 설치되었는지 확인하고 가져옵니다.
Lodash와 함께 :
Lodash는 _.mapValues
값을 매핑하고 키를 보존 하는 기능 을 제공 합니다.
_.mapValues({ one: 1, two: 2, three: 3 }, function (v) { return v * 3; });
// => { one: 3, two: 6, three: 9 }
데이터 는 Json 객체 여야하므로 다음 사항을 확인하십시오.
데이터 = $ .parseJSON (데이터);
이제 다음과 같이 할 수 있습니다.
data.map (function (...) {...});
나는 이것이 도움이되기를 바랍니다.
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 ) } )
$.map()
호출에 오류가 있습니다. 다음을 시도하십시오.
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.json?sdfsdfg").done(function (data) {
var allPosts = $.map(data,function (item) {
for (var i = 0; i < item.length; i++) {
new getData(item[i]);
};
});
});
코드의 오류는 return
AJAX 호출에서 만든 것이기 때문에 한 번만 실행되었습니다.
참고 URL : https://stackoverflow.com/questions/30803168/data-map-is-not-a-function
'IT TIP' 카테고리의 다른 글
CreateResponse를 모의하는 방법 (0) | 2020.11.03 |
---|---|
링크를 시도 할 때 AdMob에 앱이 표시되지 않습니까? (0) | 2020.11.03 |
내부 및 외부 조각화 (0) | 2020.11.03 |
Sencha Touch 또는 jQuery Mobile? (0) | 2020.11.03 |
배열 반복 중에 현재 요소가 마지막 요소인지 확인 (0) | 2020.11.03 |