Javascript 如何获取JSON数组中的第一个密钥对?

Javascript 如何获取JSON数组中的第一个密钥对?,javascript,ecmascript-6,Javascript,Ecmascript 6,目前,我有我的JSON和一个函数,它循环遍历结果,然后遍历URL。我试图只获取第一个类型值,即detail。我试图寻找获得第一个值的方法,发现使用[0]在某些情况下可以工作,但在这种情况下不行。我的索引错误吗?有没有更简洁的方法来编码这个嵌套for循环 const数据={ “数据”:{ “结果”:[{ “名称”:“死池”, “URL”:[{ “类型”:“详细信息”, “url”:”http://marvel.com/characters/12/deadpool?utm_campaign=api

目前,我有我的JSON和一个函数,它循环遍历结果,然后遍历URL。我试图只获取第一个类型值,即detail。我试图寻找获得第一个值的方法,发现使用
[0]
在某些情况下可以工作,但在这种情况下不行。我的索引错误吗?有没有更简洁的方法来编码这个嵌套for循环

const数据={
“数据”:{
“结果”:[{
“名称”:“死池”,
“URL”:[{
“类型”:“详细信息”,
“url”:”http://marvel.com/characters/12/deadpool?utm_campaign=apiRef&utm_source=6fa9bcf637a9185ee2e3035cb2d3b465"
},
{
“类型”:“wiki”,
“url”:”http://marvel.com/universe/Deadpool_(韦德·威尔逊)?utm_活动=apiRef和utm_来源=6fa9bcf637a9185ee2e3035cb2d3b465“
},
{
“类型”:“Comicling”,
“url”:”http://marvel.com/comics/characters/1009268/deadpool?utm_campaign=apiRef&utm_source=6fa9bcf637a9185ee2e3035cb2d3b465"
}
]
}]
}
};
功能测试(数据){
const dataArr=data.data['results'];
for(设i=0;i您可以使用
键入
属性来查找确切的元素

const数据={
“数据”:{
“结果”:[{
“名称”:“死池”,
“URL”:[{
“类型”:“详细信息”,
“url”:”http://marvel.com/characters/12/deadpool?utm_campaign=apiRef&utm_source=6fa9bcf637a9185ee2e3035cb2d3b465"
},
{
“类型”:“wiki”,
“url”:”http://marvel.com/universe/Deadpool_(韦德·威尔逊)?utm_活动=apiRef和utm_来源=6fa9bcf637a9185ee2e3035cb2d3b465“
},
{
“类型”:“Comicling”,
“url”:”http://marvel.com/comics/characters/1009268/deadpool?utm_campaign=apiRef&utm_source=6fa9bcf637a9185ee2e3035cb2d3b465"
}
]
}]
}
};
功能测试(数据){
const dataArr=data.data['results'];
for(设i=0;iurl.type=='detail');
log(detail.url);
}
}

试验(数据)如果数据的格式是固定的,则可以使用。 您还可以尝试从对象安全读取数据的不同方法。 您可以使用以下实用程序:

如果您不确定第0个索引,可以使用:

像这样的

const数据={
“数据”:{
“结果”:[{
“名称”:“死池”,
“URL”:[{
“类型”:“详细信息”,
“url”:”http://marvel.com/characters/12/deadpool?utm_campaign=apiRef&utm_source=6fa9bcf637a9185ee2e3035cb2d3b465"
},
{
“类型”:“wiki”,
“url”:”http://marvel.com/universe/Deadpool_(韦德·威尔逊)?utm_活动=apiRef和utm_来源=6fa9bcf637a9185ee2e3035cb2d3b465“
},
{
“类型”:“Comicling”,
“url”:”http://marvel.com/comics/characters/1009268/deadpool?utm_campaign=apiRef&utm_source=6fa9bcf637a9185ee2e3035cb2d3b465"
}
]
}]
}
};
const result=[].concat.apply([],data.data.results.map(x=>x.url.map(y=>y.type))[0];
控制台日志(结果)
const数据={
“数据”:{
“结果”:[{
“名称”:“死池”,
“URL”:[{
“类型”:“详细信息”,
“url”:”http://marvel.com/characters/12/deadpool?utm_campaign=apiRef&utm_source=6fa9bcf637a9185ee2e3035cb2d3b465"
},
{
“类型”:“wiki”,
“url”:”http://marvel.com/universe/Deadpool_(韦德·威尔逊)?utm_活动=apiRef和utm_来源=6fa9bcf637a9185ee2e3035cb2d3b465“
},
{
“类型”:“Comicling”,
“url”:”http://marvel.com/comics/characters/1009268/deadpool?utm_campaign=apiRef&utm_source=6fa9bcf637a9185ee2e3035cb2d3b465"
}
]
}]
}
};
log(data.data.results.map(el=>el.url.flat().find(el=>el.type==detail))试试这个-

function test(data) 
{
    var dataArr = data.data.results;

    for (let i = 0; i < dataArr.length; i++) {

        const urlArr = dataArr[i].urls
        for (let j = 0; j < urlArr.length; j++) {
            console.log(urlArr[0].type);
        }
    }

}
功能测试(数据)
{
var dataArr=data.data.results;
for(设i=0;i
功能性方法。。。 您的问题似乎有点模糊,但我认为您正在从每个
URL
数组的第一项中查找
type
的值

const数据={
“数据”:{
“结果”:[{
“名称”:“死池”,
“URL”:[{
“类型”:“详细信息”,
“url”:”http://marvel.com/characters/12/deadpool?utm_campaign=apiRef&utm_source=6fa9bcf637a9185ee2e3035cb2d3b465"
},
{
“类型”:“wiki”,
“url”:”http://marvel.com/universe/Deadpool_(韦德·威尔逊)?utm_活动=apiRef和utm_来源=6fa9bcf637a9185ee2e3035cb2d3b465“
},
{
“类型”:“Comicling”,
“url”:”http://marvel.com/comics/characters/1009268/deadpool?utm_campaign=apiRef&utm_source=6fa9bcf637a9185ee2e3035cb2d3b465"
}]
}]
}
};
consttypes=data.data.results.map({url:[first,…rest]})=>first.type);

console.log(类型)
对象是否总是采用相同的格式/模式?显然,您使用的是JavaScript对象文字,而不是JSON,JSON是一种文本数据交换格式。如果您添加希望得到的最终结果示例,将大大有助于理解您的问题。因此,您希望获得每个结果的第一个
类型
?或者您希望每个结果都包含整个url对象?你想要做的到底是什么?比如说,我后来想要所有三种类型,我必须做单独的变量,比如
const detail=u
data.data['results'][0].urls.find(url => url.type === 'detail')
function test(data) 
{
    var dataArr = data.data.results;

    for (let i = 0; i < dataArr.length; i++) {

        const urlArr = dataArr[i].urls
        for (let j = 0; j < urlArr.length; j++) {
            console.log(urlArr[0].type);
        }
    }

}