我如何进入我从 json 得到的数组?
How do I get into the array I got from json?
我有一个 JSON 文件。我正在使用 fetch 从该文件中提取数据。但是我想获取我拉取的数组的所有元素中的第一个元素。我试过了,但找不到。你能帮帮我吗?
我的 JSON 数据:
{
"cols": [
"Name Surname",
"Company",
"Email",
"Date",
"Country",
"City"
],
"data": [
[
"Hyacinth Vincent",
"Duis Corporation",
"iaculis.enim@magnaCrasconvallis.ca",
"28/06/2022",
"Eritrea",
"Lyubertsy"
],
[
"Brenden Martinez",
"Volutpat Nunc Associates",
"iaculis@estMauris.org",
"24/03/2021",
"British Indian Ocean Territory",
"Colwood"
],
[
"Lunea Kinney",
"Ornare Facilisis Eget Incorporated",
"rutrum.eu@liberoMorbiaccumsan.ca",
"20/10/2021",
"Jordan",
"Yorkton"
],
[
"Rhona Mooney",
"Sed Et PC",
"placerat@sodalesat.ca",
"10/11/2020",
"Azerbaijan",
"Shrewsbury"
]
]
}
我的 JS 代码:
fetch("api/tesodev.json")
.then((response) => response.json())
.then((data) => {
let cols = data.cols;
let responseData = data.data;
for (let index = 0; index < responseData.length; index++) {
let newResponseData = responseData.map(function (el, i) {
console.log(el[i]);
});
}
console.log(cols[0]);
});
我真正要做的是获取数据数组所有元素的第一个元素。
我想访问“Hyacinth Vincent”、“Brenden Martinez”、“Lunea Kinney”、“Rhona Mooney”的数据。
您可以使用双索引访问第一个字段。 [i][0]
将访问第 i
个对象中的第一个字段,
let responseData = <json>;
for (let index = 0; index < responseData.length; index++) {
console.log(responseData[i][0]);
}
你唯一做错的是映射整个子数组并记录它的每个部分,而你想要的是第一个元素:
const data = {
"cols": [
"Name Surname",
"Company",
"Email",
"Date",
"Country",
"City"
],
"data": [
[
"Hyacinth Vincent",
"Duis Corporation",
"iaculis.enim@magnaCrasconvallis.ca",
"28/06/2022",
"Eritrea",
"Lyubertsy"
],
[
"Brenden Martinez",
"Volutpat Nunc Associates",
"iaculis@estMauris.org",
"24/03/2021",
"British Indian Ocean Territory",
"Colwood"
],
[
"Lunea Kinney",
"Ornare Facilisis Eget Incorporated",
"rutrum.eu@liberoMorbiaccumsan.ca",
"20/10/2021",
"Jordan",
"Yorkton"
],
[
"Rhona Mooney",
"Sed Et PC",
"placerat@sodalesat.ca",
"10/11/2020",
"Azerbaijan",
"Shrewsbury"
]
]
}
let cols = data.cols;
let responseData = data.data;
for (let index = 0; index < responseData.length; index++) {
console.log(responseData[index][0])
}
(我会强烈建议您更改数据格式;对象数组将不那么脆弱:
...
"data": [
{
name: "Hyacinth Vincent",
company: "Duis Corporation",
email: "iaculis.enim@magnaCrasconvallis.ca",
date: "28/06/2022",
country: "Eritrea",
city: "Lyubertsy"
},
{
...
您需要在 for 循环中访问当前行,然后访问该行的第一个元素。
fetch("api/tesodev.json")
.then((response) => response.json())
.then((data) => {
let cols = data.cols;
let responseData = data.data;
for (let index = 0; index < responseData.length; index++) {
const myDataRow = responseData[index];
const theFirstDataOfMyRow = myDataRow[0];
console.log(theFirstDataOfMyRow);
}
console.log(cols[0]);
});
您几乎按照您希望的方式进行操作。
const data = {
"cols": [
"Name Surname",
"Company",
"Email",
"Date",
"Country",
"City"
],
"data": [
[
"Hyacinth Vincent",
"Duis Corporation",
"iaculis.enim@magnaCrasconvallis.ca",
"28/06/2022",
"Eritrea",
"Lyubertsy"
],
[
"Brenden Martinez",
"Volutpat Nunc Associates",
"iaculis@estMauris.org",
"24/03/2021",
"British Indian Ocean Territory",
"Colwood"
],
[
"Lunea Kinney",
"Ornare Facilisis Eget Incorporated",
"rutrum.eu@liberoMorbiaccumsan.ca",
"20/10/2021",
"Jordan",
"Yorkton"
],
[
"Rhona Mooney",
"Sed Et PC",
"placerat@sodalesat.ca",
"10/11/2020",
"Azerbaijan",
"Shrewsbury"
]
]
}
// Simplyfied, get data, use only data, only putput first entry in the array.
data.data.forEach((person) => {
console.log(person[0])
})
// Would be something like this:
/*
fetch("api/tesodev.json")
.then((response) => response.json())
.then((data) => {
let cols = data.cols
let persons = data.data
for (i = 0; i < persons.length; i++) {
console.log(persons[i][0])
}
})
*/
嗯……
我觉得这里面有很多问题
newResponseData 将是具有未定义值的项目数组 console.log() returns undefined.
我认为这两行可以提供帮助。
你最后能查一下吗
let responseData = data.data;
const finaldata = responseData.map(item => item [0])
我有一个 JSON 文件。我正在使用 fetch 从该文件中提取数据。但是我想获取我拉取的数组的所有元素中的第一个元素。我试过了,但找不到。你能帮帮我吗?
我的 JSON 数据:
{
"cols": [
"Name Surname",
"Company",
"Email",
"Date",
"Country",
"City"
],
"data": [
[
"Hyacinth Vincent",
"Duis Corporation",
"iaculis.enim@magnaCrasconvallis.ca",
"28/06/2022",
"Eritrea",
"Lyubertsy"
],
[
"Brenden Martinez",
"Volutpat Nunc Associates",
"iaculis@estMauris.org",
"24/03/2021",
"British Indian Ocean Territory",
"Colwood"
],
[
"Lunea Kinney",
"Ornare Facilisis Eget Incorporated",
"rutrum.eu@liberoMorbiaccumsan.ca",
"20/10/2021",
"Jordan",
"Yorkton"
],
[
"Rhona Mooney",
"Sed Et PC",
"placerat@sodalesat.ca",
"10/11/2020",
"Azerbaijan",
"Shrewsbury"
]
]
}
我的 JS 代码:
fetch("api/tesodev.json")
.then((response) => response.json())
.then((data) => {
let cols = data.cols;
let responseData = data.data;
for (let index = 0; index < responseData.length; index++) {
let newResponseData = responseData.map(function (el, i) {
console.log(el[i]);
});
}
console.log(cols[0]);
});
我真正要做的是获取数据数组所有元素的第一个元素。 我想访问“Hyacinth Vincent”、“Brenden Martinez”、“Lunea Kinney”、“Rhona Mooney”的数据。
您可以使用双索引访问第一个字段。 [i][0]
将访问第 i
个对象中的第一个字段,
let responseData = <json>;
for (let index = 0; index < responseData.length; index++) {
console.log(responseData[i][0]);
}
你唯一做错的是映射整个子数组并记录它的每个部分,而你想要的是第一个元素:
const data = {
"cols": [
"Name Surname",
"Company",
"Email",
"Date",
"Country",
"City"
],
"data": [
[
"Hyacinth Vincent",
"Duis Corporation",
"iaculis.enim@magnaCrasconvallis.ca",
"28/06/2022",
"Eritrea",
"Lyubertsy"
],
[
"Brenden Martinez",
"Volutpat Nunc Associates",
"iaculis@estMauris.org",
"24/03/2021",
"British Indian Ocean Territory",
"Colwood"
],
[
"Lunea Kinney",
"Ornare Facilisis Eget Incorporated",
"rutrum.eu@liberoMorbiaccumsan.ca",
"20/10/2021",
"Jordan",
"Yorkton"
],
[
"Rhona Mooney",
"Sed Et PC",
"placerat@sodalesat.ca",
"10/11/2020",
"Azerbaijan",
"Shrewsbury"
]
]
}
let cols = data.cols;
let responseData = data.data;
for (let index = 0; index < responseData.length; index++) {
console.log(responseData[index][0])
}
(我会强烈建议您更改数据格式;对象数组将不那么脆弱:
...
"data": [
{
name: "Hyacinth Vincent",
company: "Duis Corporation",
email: "iaculis.enim@magnaCrasconvallis.ca",
date: "28/06/2022",
country: "Eritrea",
city: "Lyubertsy"
},
{
...
您需要在 for 循环中访问当前行,然后访问该行的第一个元素。
fetch("api/tesodev.json")
.then((response) => response.json())
.then((data) => {
let cols = data.cols;
let responseData = data.data;
for (let index = 0; index < responseData.length; index++) {
const myDataRow = responseData[index];
const theFirstDataOfMyRow = myDataRow[0];
console.log(theFirstDataOfMyRow);
}
console.log(cols[0]);
});
您几乎按照您希望的方式进行操作。
const data = {
"cols": [
"Name Surname",
"Company",
"Email",
"Date",
"Country",
"City"
],
"data": [
[
"Hyacinth Vincent",
"Duis Corporation",
"iaculis.enim@magnaCrasconvallis.ca",
"28/06/2022",
"Eritrea",
"Lyubertsy"
],
[
"Brenden Martinez",
"Volutpat Nunc Associates",
"iaculis@estMauris.org",
"24/03/2021",
"British Indian Ocean Territory",
"Colwood"
],
[
"Lunea Kinney",
"Ornare Facilisis Eget Incorporated",
"rutrum.eu@liberoMorbiaccumsan.ca",
"20/10/2021",
"Jordan",
"Yorkton"
],
[
"Rhona Mooney",
"Sed Et PC",
"placerat@sodalesat.ca",
"10/11/2020",
"Azerbaijan",
"Shrewsbury"
]
]
}
// Simplyfied, get data, use only data, only putput first entry in the array.
data.data.forEach((person) => {
console.log(person[0])
})
// Would be something like this:
/*
fetch("api/tesodev.json")
.then((response) => response.json())
.then((data) => {
let cols = data.cols
let persons = data.data
for (i = 0; i < persons.length; i++) {
console.log(persons[i][0])
}
})
*/
嗯……
我觉得这里面有很多问题 newResponseData 将是具有未定义值的项目数组 console.log() returns undefined.
我认为这两行可以提供帮助。 你最后能查一下吗
let responseData = data.data;
const finaldata = responseData.map(item => item [0])