EriK Asked: 2020-08-24 13:06:31 +0800 CST 2020-08-24 13:06:31 +0800 CST 2020-08-24 13:06:31 +0800 CST JavaScript 中的过滤器 772 我有一个数组Data: var Data = [{"Nombre": "A","Apellido": "B","Edad": 12},{},{},{},...] 我如何过滤数据,以便它给我所有与例如Apellido相同的结果?B javascript 3 Answers Voted Best Answer fredyfx 2020-08-24T13:20:50+08:002020-08-24T13:20:50+08:00 从以下代码: var Data = [{"Nombre": "AA","Apellido": "B","Edad": 12},{"Nombre": "BA","Apellido": "C","Edad": 12},{"Nombre": "CA","Apellido": "D","Edad": 12},{"Nombre": "DA","Apellido": "E","Edad": 12},{"Nombre": "EA","Apellido": "F","Edad": 12},{"Nombre": "GA","Apellido": "G","Edad": 12},{"Nombre": "HA","Apellido": "B","Edad": 12},{"Nombre": "IA","Apellido": "B","Edad": 12},{"Nombre": "JA","Apellido": "B","Edad": 12}]; var filtro = $(Data).filter(function (index,element){return element.Apellido==='B';}); for (var i=0;i<filtro.length;i++) { console.log(filtro[i].Nombre +" "+filtro[i].Apellido) } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> $(Data)使 Data 变量成为 的对象jQuery。 .filter是一个函数jQuery,直接来自其官网:http ://api.jquery.com/filter/上面写着: 描述:将匹配元素的集合减少为匹配选择器或通过函数测试的元素。 翻译成好的西班牙语: 描述:减少具有相同选择模式的元素集。 在这种情况下,我们使用function(index, element)文档说: 用于测试集合中每个元素的函数。这是当前的 DOM 元素 翻译成好的西班牙语: 一个函数用于测试集合中的每个元素,“this”是当前的 DOM 元素。 在这种情况下,每个element代表 a{"Nombre": "AA","Apellido": "B","Edad": 12}并且因为我们需要获取其属性 (LastName) 等于“B”的元素:return element.Apellido==='B'; 现在,过滤器变量是一个包含新过滤元素集的数组(请原谅冗余)。 for 循环允许我们遍历所有元素并最终使用console.log. Ricardo D. Quiroga 2020-08-24T13:27:43+08:002020-08-24T13:27:43+08:00 您好,您可以使用Array.filter它,因为ECMAScript5规范中添加了原生 JavaScript,因此今天几乎所有浏览器都支持它。 对于您的特定问题,它非常简单,但是如果您使用新符号对其进行简化: let resultado = Data.filter(obj => obj.Apellido === 'B'); 我也邀请您尝试Array.find,这很相似,但它返回与过滤器匹配的第一个元素,如果它们都不匹配,它将返回undefined。 注意:建议开始使用let而不是var为了更好地控制您定义的变量的范围。您可以阅读更多关于let. Jcarlos 2020-08-24T13:21:11+08:002020-08-24T13:21:11+08:00 有很多方法可以过滤该 Array of objects data,例如: var Data = [{"Nombre": "A","Apellido": "B","Edad": 12}]; var contenidoFiltrado = Data.filter((x) => (x.Apellido[0] === 'B')); 变量contenidoFiltrado, 包含 Array 的所有元素data,它以 .Apellido开头B。
从以下代码:
$(Data)
使 Data 变量成为 的对象jQuery
。.filter
是一个函数jQuery
,直接来自其官网:http ://api.jquery.com/filter/上面写着:翻译成好的西班牙语:
在这种情况下,我们使用
function(index, element)
文档说:翻译成好的西班牙语:
在这种情况下,每个
element
代表 a{"Nombre": "AA","Apellido": "B","Edad": 12}
并且因为我们需要获取其属性 (LastName) 等于“B”的元素:return element.Apellido==='B';
现在,过滤器变量是一个包含新过滤元素集的数组(请原谅冗余)。
for 循环允许我们遍历所有元素并最终使用
console.log
.您好,您可以使用
Array.filter
它,因为ECMAScript5规范中添加了原生 JavaScript,因此今天几乎所有浏览器都支持它。对于您的特定问题,它非常简单,但是如果您使用新符号对其进行简化:
我也邀请您尝试
Array.find
,这很相似,但它返回与过滤器匹配的第一个元素,如果它们都不匹配,它将返回undefined
。注意:建议开始使用
let
而不是var
为了更好地控制您定义的变量的范围。您可以阅读更多关于let
.有很多方法可以过滤该 Array of objects
data
,例如:变量
contenidoFiltrado
, 包含 Array 的所有元素data
,它以 .Apellido
开头B
。