Javascript:在Javascript对象数组中按id查找对象,然后在同一Javascript对象中获取另一个对象信息?

Javascript:在Javascript对象数组中按id查找对象,然后在同一Javascript对象中获取另一个对象信息?,javascript,jquery,Javascript,Jquery,所以我有一个如下的对象数组: var test_data = [ { "id" : "Test01", //Has to be a string form ID "test_info" : "This is the test information", "test_score" : 1

所以我有一个如下的对象数组:

var test_data = [    
                    {
                        "id" : "Test01", //Has to be a string form ID
                        "test_info"  : "This is the test information",
                        "test_score" : 1
                    },
                    {
                        "id" : "Test02", //Has to be a string form ID
                        "test_info"  : "This is the test information",
                        "test_score" : 2
                    }
我将有一个如下的变量:例如
var data=“Test01”

我想知道是否可以使用该变量通过其
id
搜索对象并返回整个对象(如果可能,将存储在另一个变量中)

然后

要访问该对象并获取返回的
测试信息
信息

为了简化,我希望能够搜索
test\u数据
,查找与
“id”
匹配的对象,例如
“Test01”
。然后在数组中找到该对象后,从该对象获取
“test\u info”
信息,例如
“这是测试信息”
,并将其作为字符串存储在变量中

如果可能的话,我将非常感谢在这件事上的任何帮助

编辑: @dave您的答案非常有效,如下所示:

test_data.getTestInfo = (id) => test_data.find(t => t.id ===id).test_info;
let info = test_data.getTestInfo('Test01');
console.log(info);
但是 匹配的
“id”
例如
“Test01”
将来自一个变量,如
li\u test=$(this).text()
但是如果使用
“Test01”
,它的工作原理就不同了

工作原理:

var li_test = $(this).text();
test_data.getTestInfo = (id) => test_data.find(t => t.id ===id).test_info;
let info = test_data.getTestInfo(li_test);
console.log(info);

但是上面的代码段返回了一个错误-UncaughtTypeError:无法读取未定义的属性“test_info”

听起来您只是想这样做:

var test_data = [    
                    {
                        "id" : "Test01", //Has to be a string form ID
                        "test_info"  : "This is the test information",
                        "test_score" : 1
                    },
                    {
                        "id" : "Test02", //Has to be a string form ID
                        "test_info"  : "This is the test information",
                        "test_score" : 2
                    }
var测试数据=[{
“id”:“Test01”,//必须是字符串形式的id
“测试信息”:“这是测试信息”,
“测试分数”:1分
},
{
“id”:“Test02”,//必须是字符串形式的id
“测试信息”:“这是测试信息”,
“测试分数”:2分
}];
test\u data.getTestInfo=(id)=>test\u data.find(t=>t.id==id);
$('button')。在('click',function()上{
设id=$(this.text();
let info=test\u data.getTestInfo(id);
控制台日志(信息);
});


Test01
stringToFind是您的字符串

returnedObject是匹配的对象

var stringToFind=“Test01”;
var测试数据=[{
“id”:“Test01”,
“测试信息”:“这是测试信息”,
“测试分数”:1分
},
{
“id”:“Test02”,
“测试信息”:“这是测试信息”,
“测试分数”:2分
}];
test_data.getObjectFromID=(id)=>test_data.find(target=>target.id==id);
var returnedObject=test_data.getObjectFromID(stringToFind);

console.log(returnedObject)
在我尝试引入
'Test01'
一个变量之前效果很好,如下所示
var li_test=$(this).text()当单击链接时,该变量以测试ID的名称出现,返回时与变量一样,但当它试图引入上面的答案时,返回如下Uncaught TypeError:Cannot read属性'Test_info'of undefineddev trued using
var li_Test=JSON.stringify($(this).text())但它仍然没有work@Jay1995听起来你需要进一步扩展你的问题details@solarshado你现在得到我想要的了吗?抱歉没有更好地解释@戴夫,谢谢,我成功了。问题是变量存储时两边都有双引号,所以只需删除它们,就可以完美地工作,谢谢!
var stringToFind=$(this.text()将这样表示…这也是在搜索后返回整个对象,而不是通过
id
搜索,并仅返回
test\u info
数据,该数据应为“这是测试信息”,您可以控制台.log($(this).text())。它记录了什么?