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”的错误