使用 .push() 将 JSON 中的数据添加到数组时的未定义值
Undefined value when adding data from JSON to array using .push()
我正在从 this API 获取 JSON 数据。我的代码如下所示:
function setup() {
noLoop();
//Enable cross-origin request
let CO = 'https://cors-anywhere.herokuapp.com/';
//API link
let source = 'http://hitchwiki.org/maps/api/?continent=AF';
let url = CO + source;
loadJSON(url, insertInToArray);
}
function insertInToArray(data) {
var ids = [];
var count = Object.keys(data).length;
for(let i = 0; i < count; i++) {
let cod = data[i].id;
ids[i].push(cod);
}
console.log(ids);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.js"></script>
打开控制台时出现错误“未捕获(承诺)类型错误:无法读取未定义的 属性 'push'”。显然在所有 ID 之前都有一个未定义的值,但我真的不知道如何修复它。
感谢您的帮助!
我总是使用 async
和 await
来处理我的 JSON 请求。
async function insertInToArray(data) {
...
var count = await Object.keys(data).length;
...
做 ids[i] = cod
而不是 ids[i].push(cod)
.
function setup() {
noLoop();
//Enable cross-origin request
let CO = 'https://cors-anywhere.herokuapp.com/';
//API link
let source = 'http://hitchwiki.org/maps/api/?continent=AF';
let url = CO + source;
loadJSON(url, insertInToArray);
}
function insertInToArray(data) {
var ids = [];
var count = Object.keys(data).length;
for (let i = 0; i < count; i++) {
let cod = data[i].id;
ids[i] = cod;
}
console.log(ids);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.js"></script>
数据是一个数组,因此您可以使用地图:
function insertInToArray(data) {
var ids = data.map(
function(item){ return item.id; }
)
console.log(ids);
}
我正在从 this API 获取 JSON 数据。我的代码如下所示:
function setup() {
noLoop();
//Enable cross-origin request
let CO = 'https://cors-anywhere.herokuapp.com/';
//API link
let source = 'http://hitchwiki.org/maps/api/?continent=AF';
let url = CO + source;
loadJSON(url, insertInToArray);
}
function insertInToArray(data) {
var ids = [];
var count = Object.keys(data).length;
for(let i = 0; i < count; i++) {
let cod = data[i].id;
ids[i].push(cod);
}
console.log(ids);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.js"></script>
打开控制台时出现错误“未捕获(承诺)类型错误:无法读取未定义的 属性 'push'”。显然在所有 ID 之前都有一个未定义的值,但我真的不知道如何修复它。
感谢您的帮助!
我总是使用 async
和 await
来处理我的 JSON 请求。
async function insertInToArray(data) {
...
var count = await Object.keys(data).length;
...
做 ids[i] = cod
而不是 ids[i].push(cod)
.
function setup() {
noLoop();
//Enable cross-origin request
let CO = 'https://cors-anywhere.herokuapp.com/';
//API link
let source = 'http://hitchwiki.org/maps/api/?continent=AF';
let url = CO + source;
loadJSON(url, insertInToArray);
}
function insertInToArray(data) {
var ids = [];
var count = Object.keys(data).length;
for (let i = 0; i < count; i++) {
let cod = data[i].id;
ids[i] = cod;
}
console.log(ids);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.js"></script>
数据是一个数组,因此您可以使用地图:
function insertInToArray(data) {
var ids = data.map(
function(item){ return item.id; }
)
console.log(ids);
}