gpt4 book ai didi

javascript - 在 JSON 对象中查找属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:09:16 25 4
gpt4 key购买 nike

我正在创建一个像这样的 JSON 对象

tags = {"jon":["beef","pork"],"jane":["chicken","lamb"]};

这是使用 php 从类似数组生成的

$arr = array(
'jon' => array('beef', 'pork'),
'jane' => array('chicken', 'lamb')
);
$tags = json_encode($arr);

我想检查一个或另一个中是否有东西。这些似乎都不起作用,但是像

if('lamb' in tags.jane)) {
console.log('YES');
} else {
console.log('NO');
}

向控制台写入NO

if('foo' in tags.jane)) {
console.log('YES');
} else {
console.log('NO');
}

同时向控制台写入NO

所以看着

typeof(tags.jane);

它显示它是一个“对象”但是

console.log(tags);

显示以下内容:

Object
jane: Array[2]
0: "chicken"
1: "lamb"
length: 2
__proto__: Array[0]
jon: Array[2]
0: "beef"
1: "pork"
length: 2
__proto__: Array[0]
__proto__: Object

所以我想也许 tags.jane 实际上可能是一个数组并尝试过

if($.inArray('lamb', tags.jane)) {
console.log('YES');
} else {
console.log('NO');
}

YES 写入控制台但是

if($.inArray('foo', tags.jane)) {
console.log('YES');
} else {
console.log('NO');
}

还将 YES 写入控制台。

我是否错误地构建了 JSON 对象?没有正确定位值(value)?任何意见是极大的赞赏。如果这作为一个数组而不是一个对象会更容易,我可以完全控制它来改变它。我只是有点不知道该如何对待它。

最佳答案

jQuery.inArray未找到元素时返回 -1。这是来自 Javascript 的 POV 的 true 值。试试这个:

if($.inArray('foo', tags.jane) != -1) {

关于javascript - 在 JSON 对象中查找属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10047638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com