JavaScript 如何根据字段的值过滤对象
在本文中,我们提供了一个对象,并且任务是根据JavaScript中字段的值来过滤对象。下面讨论了两种方法。
方法1: 首先创建一个带有字段值作为键的空对象。然后逐个遍历原始对象,并将对象追加到对象的适当键上。使用 push() 方法将对象推送到新对象中数组的末尾。
示例: 本示例实现了上述方法。
<head>
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js">
</script>
</head>
<body style="text-align:center;">
<h1 style="color:green">
GeeksForGeeks
</h1>
<p id="GFG_UP"></p>
<button onclick="myGFG()">
Click Here
</button>
<p id="GFG_DOWN"></p>
<script>
var up = document.getElementById("GFG_UP");
var obj = [
{ ID: 2, Name: 'name_2', title: 'title_a' },
{ ID: 1, Name: 'name_1', title: 'title_a' },
{ ID: 3, Name: 'name_1', title: 'title_c' }
];
up.innerHTML = "[" + JSON.stringify(obj) + "]";
var down = document.getElementById("GFG_DOWN");
function myGFG() {
var titles = {};
for (var i = 0; i < obj.length; i++) {
titles[obj[i].title] = [];
}
for (var i = 0; i < obj.length; i++) {
titles[obj[i].title].push(obj[i]);
}
down.innerHTML = JSON.stringify(titles);
}
</script>
</body
HTML
输出:
方法2: 首先,使用字段值作为键值和空数组作为值创建一个空对象,使用新的 Array() . 然后,逐个遍历原始对象,并将对象追加到正确的键值。使用 push() 方法将对象推送到新对象数组的末尾。
示例: 该示例实现了上述方法。
<head>
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js">
</script>
</head>
<body style="text-align:center;">
<h1 style="color:green">
GeeksForGeeks
</h1>
<p id="GFG_UP"></p>
<button onclick="myGFG()">
Click Here
</button>
<p id="GFG_DOWN"></p>
<script>
var up = document.getElementById("GFG_UP");
var obj = [
{ ID: 2, Name: 'name_2', title: 'title_a' },
{ ID: 1, Name: 'name_1', title: 'title_a' },
{ ID: 3, Name: 'name_1', title: 'title_c' }
];
up.innerHTML = "[" + JSON.stringify(obj) + "]";
var down = document.getElementById("GFG_DOWN");
function myGFG() {
var names = {};
for (var i = 0; i < obj.length; i++) {
if (!names[obj[i].Name]) {
names[obj[i].Name] = new Array();
}
names[obj[i].Name].push(obj[i]);
}
down.innerHTML = JSON.stringify(names);
}
</script>
</body>
HTML
输出: