Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 如何获取与另一个给定值匹配的JSON对象的键值?_Javascript_Json - Fatal编程技术网

Javascript 如何获取与另一个给定值匹配的JSON对象的键值?

Javascript 如何获取与另一个给定值匹配的JSON对象的键值?,javascript,json,Javascript,Json,我有一个JSON: var projects_array = new Array( {name:"myName1", id:"myid1", index:1}, {name:"myName2", id:"myid2", index:2}, {name:"myName3", id:"myid3", index:3}, ); 我需要获取与特定“id”值匹配的对象的“索引”值。因此,如果我的“id”是“myid1”,那么y将得到“1” 以下是我的部分代码: var myid = $(this

我有一个JSON:

var projects_array = new Array(
{name:"myName1", id:"myid1", index:1},
{name:"myName2", id:"myid2", index:2},
{name:"myName3", id:"myid3", index:3},  

);
我需要获取与特定“id”值匹配的对象的“索引”值。因此,如果我的“id”是“myid1”,那么y将得到“1”

以下是我的部分代码:

 var myid = $(this).attr('id'); //this is the id value

projects_array.map(function (proj) {
    if (proj.id == myid) {
        return proj   // returns Undefined  
    } 
   }); 

最后,我需要在一个变量中指定该值以供以后使用,谢谢:)

我认为您成功地选择了索引,但当您返回该值时,它将进入一个新数组(“映射”在那里,如果您愿意的话)。试着这样做:

var myproj; 
var myindex;
projects_array.map(function (proj) {
    if (proj.id == myid) {
        myproj = proj;
        myindex = proj.index;
    } 
}); 

代码提示:切勿使用new Array()。相反,使用数组文字:
[1,2,3]
@minitech,我以前从SO那里得到过这个建议,但是为什么,你能给出一些想法吗?@Sheikheera:它更短,效率更高一点,是标准的,人们可以替换
数组
来表达他们想要表达的意思。另外,事实上,
新数组(5)
不会为您提供
[5]
,而是
[,,,]
。它工作得非常好。。谢谢你们:)我真的很感激所有的答案和提示!