Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript/jquery从json变量获取json字符串名称_Javascript_Arrays_Json - Fatal编程技术网

使用javascript/jquery从json变量获取json字符串名称

使用javascript/jquery从json变量获取json字符串名称,javascript,arrays,json,Javascript,Arrays,Json,我需要一种方法来获取数组的标题/名称,只需在Javascript中检测该数组中的值 我有一个json数组,其中有问候语和食物的数组。变量x等于hi,变量y等于pizza var$arrays={问候语:['hello','hi'],食物:['pizza','cookie']}; 变量x='hi', y=‘比萨饼’; 我现在需要为x返回问候语的名称,为y返回食物的名称 if(x=='hi') { alert($array.greeting); // alert('greeting'

我需要一种方法来获取数组的标题/名称,只需在Javascript中检测该数组中的值

我有一个json数组,其中有
问候语
食物
的数组。变量
x
等于
hi
,变量
y
等于
pizza

var$arrays={问候语:['hello','hi'],食物:['pizza','cookie']}; 变量x='hi', y=‘比萨饼’; 我现在需要为
x
返回
问候语的名称,为
y
返回
食物的名称

if(x=='hi') { alert($array.greeting); // alert('greeting'); } if(y=='pizza') { alert($array.food); // alert('food'); } 如果(x=='hi'){ 警报($array.greeting);//警报('greeting'); } 如果(y=='pizza'){ 警报($array.food);//警报('food'); }
在Javascript或jQuery中,哪种方式更有效?根据包含数组的对象的大小/结构,您可以简单地迭代它们的键,并找到其值(数组)包含您要查找的值的键。下面是它的外观

var$arrays={
“问候语”:[“你好”,“你好],
“食物”:[‘比萨饼’、‘饼干’]
};
变量x='hi',
y=‘比萨饼’;
函数getContainerName(值){
返回Object.keys($arrays).find(函数(键){
返回$arrays[key].find(函数(elem){
返回元素===值;
})
});
}
console.log(getContainerName(x));

console.log(getContainerName(y))在javascript中one=is赋值==或===is条件求值这与jQuery无关。还有,为什么要在引号中创建对象?如果x是一个数组,需要在该数组中找到特定值,那么这会起作用吗?例如,
y=['chips','pizza'],x={“food”:['banana','carrot','pizza','wheet','chips']}
因此,它需要在x数组中找到芯片和比萨饼,因此
console.log(getContainerName(x))
将返回
food
?@Ackados更新。看一看,非常棒,最后一件事,我试图修改它,使数组中不仅仅有
食物
,还添加了
问候语
,但当我将y中的
比萨饼
更改为
时,会出现未定义的错误@阿克多斯:嗯,这比你想象的更能改变问题。你应该打开一个新问题,我可以在那里回答。链接到