[英]Get object from object by specific value in jQuery
我有一个这样的对象。
var obj =
{
0:{submissionID: "136169", date: "2018-02-17 14:40:00", compId: "j1hrxej5", browser: "Chrome", formName: "Name1"}
1:{submissionID: "6113", date: "2018-02-17 12:55:13", compId: "j1hrxej5", browser: "Mozila", formName: "Name2"}
2:{submissionID: "500", date: "2018-02-16 18:45:58", compId: "jhg2l9lj", browser: "Opera", formName: "Name3"}
3:{submissionID: "306", date: "2018-02-16 18:43:45", compId: "j372155lj", browser: "Chrome", formName: "Name4"}
4:{submissionID: "50150", date: "2018-02-16 18:41:36", compId: "j37189lj", browser: "Opera", formName: "Name5"}
};
我可以通过它的 submitID 取一个对象吗? 像 SQL。 首先我创建了这样的对象。
var obj =
{
136169:{submissionID: "136169", date: "2018-02-17 14:40:00", compId: "j1hrxej5", browser: "Chrome", formName: "Name1"}
6113:{submissionID: "6113", date: "2018-02-17 12:55:13", compId: "j1hrxej5", browser: "Mozila", formName: "Name2"}
500:{submissionID: "500", date: "2018-02-16 18:45:58", compId: "jhg2l9lj", browser: "Opera", formName: "Name3"}
306:{submissionID: "306", date: "2018-02-16 18:43:45", compId: "j372155lj", browser: "Chrome", formName: "Name4"}
50150:{submissionID: "50150", date: "2018-02-16 18:41:36", compId: "j37189lj", browser: "Opera", formName: "Name5"}
};
并获得 obj[submissionID],但我现在必须修复我的代码
使用Object.values
并find
var idToFind = "500";
var output = Object.values( obj ).find( s => s.id == idToFind );
您可以使用数组而不是对象,如下所示:
var obj =
[
{submissionID: "136169", date: "2018-02-17 14:40:00", compId: "j1hrxej5", browser: "Chrome", formName: "Name1"}
{submissionID: "6113", date: "2018-02-17 12:55:13", compId: "j1hrxej5", browser: "Mozila", formName: "Name2"}
{submissionID: "500", date: "2018-02-16 18:45:58", compId: "jhg2l9lj", browser: "Opera", formName: "Name3"}
{submissionID: "306", date: "2018-02-16 18:43:45", compId: "j372155lj", browser: "Chrome", formName: "Name4"}
{submissionID: "500", date: "2018-02-16 18:41:36", compId: "j37189lj", browser: "Opera", formName: "Name5"}
];
然后,创建一个过滤器函数:
var specificID = "500";
val filteredArray = array.filter(function(element) {
return (element.submissionID === specificID)
};
// filteredArray[0] is the object that you are looking for
可以在此处找到有关过滤器方法的更多详细信息
对于您的回应,请尝试以下方法:
var obj =
{
0:{submissionID: "136169", date: "2018-02-17 14:40:00", compId: "j1hrxej5", browser: "Chrome", formName: "Name1"},
1:{submissionID: "6113", date: "2018-02-17 12:55:13", compId: "j1hrxej5", browser: "Mozila", formName: "Name2"},
2:{submissionID: "500", date: "2018-02-16 18:45:58", compId: "jhg2l9lj", browser: "Opera", formName: "Name3"},
3:{submissionID: "306", date: "2018-02-16 18:43:45", compId: "j372155lj", browser: "Chrome", formName: "Name4"},
4:{submissionID: "50150", date: "2018-02-16 18:41:36", compId: "j37189lj", browser: "Opera", formName: "Name5"}
};
如果这是响应,则使用以下方法获取所需的答案:
for (var i = Object.keys(obj).length - 1; i >= 0; i--) {
if (obj[i].submissionID==="500") {
var obj2 = obj[i];
console.log(obj2);
}
}
您可以使用Object.keys
和Array.reduce
的组合Array.reduce
获取映射。 注意:事实证明,您声明对象的语法不正确,因为它缺少逗号。
var x = {
0:{submissionID: "136169", date: "2018-02-17 14:40:00", compId: "j1hrxej5", browser: "Chrome", formName: "Name1"},
1:{submissionID: "6113", date: "2018-02-17 12:55:13", compId: "j1hrxej5", browser: "Mozila", formName: "Name2"},
2:{submissionID: "500", date: "2018-02-16 18:45:58", compId: "jhg2l9lj", browser: "Opera", formName: "Name3"},
3:{submissionID: "306", date: "2018-02-16 18:43:45", compId: "j372155lj", browser: "Chrome", formName: "Name4"},
4:{submissionID: "50150", date: "2018-02-16 18:41:36", compId: "j37189lj", browser: "Opera", formName: "Name5"}
}
function remap(obj){
return Object.keys(obj).reduce(function(m, key){
let item = obj[key];
m[item.submissionID] = item;
return m;
}, {});
}
var newMap = remap(x); //"{"306":{"submissionID":"306","date":"2018-02-16 18:43:45","compId":"j372155lj","browser":"Chrome","formName":"Name4"},"500":{"submissionID":"500","date":"2018-02-16 18:45:58","compId":"jhg2l9lj","browser":"Opera","formName":"Name3"},"6113":{"submissionID":"6113","date":"2018-02-17 12:55:13","compId":"j1hrxej5","browser":"Mozila","formName":"Name2"},"50150":{"submissionID":"50150","date":"2018-02-16 18:41:36","compId":"j37189lj","browser":"Opera","formName":"Name5"},"136169":{"submissionID":"136169","date":"2018-02-17 14:40:00","compId":"j1hrxej5","browser":"Chrome","formName":"Name1"}}"
newMap["50150"]; //"{"submissionID":"50150","date":"2018-02-16 18:41:36","compId":"j37189lj","browser":"Opera","formName":"Name5"}"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.