Javascript 在JS数组中搜索键
鉴于此阵列:Javascript 在JS数组中搜索键,javascript,arrays,json,Javascript,Arrays,Json,鉴于此阵列: var a = [ { "name": "Konji-fu", "bananas": [ { "url": "//url1", "num": 16 }, { "url": "//url2", "num": 16 } ] }, { "name": "Salias", "bananas": [ {
var a = [
{
"name": "Konji-fu",
"bananas": [
{
"url": "//url1",
"num": 16
},
{
"url": "//url2",
"num": 16
}
]
},
{
"name": "Salias",
"bananas": [
{
"url": "//url4",
"num": 16
},
{
"url": "//url12",
"num": 3
}
]
}
]
如何检查它是否包含键
额外问题:如何检查香蕉键和url
键是否存在
编辑:
var p = JSON.parse(a)
我尝试了p
中的testArray='feeds',jQuery.inArray('feeds',p)
以及许多其他内容,请参见下面的答案。我似乎无法检查这个特定数组中的键;但如果你没有答案,可以随意否决;p
let newArray = array.filter((item)=>{
return item.bananas.filter(item2=>{
return item2.url
})
})
如何检查它是否包含键
假设你是说
如何检查任何条目是否包含键
使用
//同一个对象,只在一行上
const a=[{“name”:“Konji fu”,“bananas”:[{“url”:”//url1”,“num”:16},{“url”:”//url2”,“num”:16},{“name”:“Salias”,“bananas”:[{“url”:”//url4”,“num”:16},{“url”:”//url12”,“num”:3}]
让containsBananas=a.some(obj=>
Object.prototype.hasOwnProperty.call(obj,'bananas'))
console.info('包含香蕉:',包含香蕉)
看起来这个问题已经在另一次讨论中得到了回答。您可能需要检查此页面:
编辑:
另一次讨论中有人提出了这样一个简单的函数:
function lookup( arr, name ) {
for(var i = 0, len = arr.length; i < len; i++) {
if( arr[ i ].hasOwnProperty( name )
return true;
}
return false;
}
函数查找(arr,名称){
对于(变量i=0,len=arr.length;i
如果愿意,您可以查看此讨论:这是作为答案发布的,但它不会尝试回答问题。它可能是编辑、评论、其他问题,或者完全删除。感谢您的通知。我刚刚接触StackOverflow,没有评论问题的特权。因此,也许我应该删除删除此帖子。抱歉给您带来不便。我想。版主可以将您的帖子转换为评论。这不是一件坏事:)。。。它不起作用:y.hasOwnProperty(“feeds”)=>false
是的,我当然知道这篇文章。谢谢你的肯定。虽然这个链接可以回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-发生了什么事?这确实不起作用:让b=p.some(obj=>Object.prototype.hasOwnProperty.call(obj,'bananas'))
当然,我的数组是一个正确的JSON.parse(a)
Object..@yPhil您使用的浏览器或环境是什么?它可能与不兼容,但必须非常旧。我正在使用最新的Firefox,让我检查一下。。。是的,65.0-64位,在Ubuntu上Linux@yPhil没关系,我认为这只是对JSON.parse
的误解。我已经对你的问题发表了评论>//同一个对象,只有一行:菲尔,我想问题在这里。我的字符串的格式可能不正确。它是这样产生的:var json=json.stringify(data,null,2),blob=new blob([json],{type:“application/json”}),url=window.url.createObjectURL(blob)
,显然,格式是不正确的,尽管如果真是这样,json.parse()我的字符串会产生一个错误。。。用于字符串上。a
变量已经是JavaScript数组,不需要parsed@Phil但是如果我不这样做,我就不能使用任何数组方法:TypeError:a.some不是函数
@Phil这个片段就是我示例的结构。这是我生成的一个值数组,然后,为了在文本文件中获得正确的值,我必须对数组执行JSON.stringify()。然后,我通过一个新的控制台将其返回,它在控制台中看起来与此完全相同。正如我所说,您问题中的代码必须与实际情况不符。如果您在问题中使用var a=…
代码并使用var p=JSON.parse(a)
,则会出现类似“位置1处JSON中的意外标记o”的错误