javascript在数组中获取对象数组中键的所有不同值
我需要从给定的对象数组中获取给定键的所有不同值。例如:javascript在数组中获取对象数组中键的所有不同值,javascript,arrays,json,Javascript,Arrays,Json,我需要从给定的对象数组中获取给定键的所有不同值。例如: var arr = [ { "cod": 0 "level": "INF" },{ "cod": 1 "level": "INF" },{ "cod": 2 "level": "INC" },{ "cod": 3 "level": "IND" } ]
var arr = [
{
"cod": 0
"level": "INF"
},{
"cod": 1
"level": "INF"
},{
"cod": 2
"level": "INC"
},{
"cod": 3
"level": "IND"
}
]
不同的值(arr,'level')
应返回:
['INF','INC','IND']
实现这一点的简单方法是什么?循环数组并从每个元素获取指定的属性。将它们用作对象中的关键帧以消除重复项,然后返回该对象的关键帧
var-arr=[
{
“cod”:0,
“级别”:“INF”
},{
“化学需氧量”:1,
“级别”:“INF”
},{
“化学需氧量”:2,
“级别”:“公司”
},{
“cod”:3,
“级别”:“IND”
}
];
函数不同的_值(数组、属性){
var值_seen={};//用于删除重复项
对于(var i=0;i 警报(JSON.stringify(不同的_值(arr,'level'))代码>在数组上循环并从每个元素获取指定的属性。将它们用作对象中的关键帧以消除重复项,然后返回该对象的关键帧
var-arr=[
{
“cod”:0,
“级别”:“INF”
},{
“化学需氧量”:1,
“级别”:“INF”
},{
“化学需氧量”:2,
“级别”:“公司”
},{
“cod”:3,
“级别”:“IND”
}
];
函数不同的_值(数组、属性){
var值_seen={};//用于删除重复项
对于(var i=0;i函数不同的值(数组、键){
var count=array.length,
输出=[];
对于(变量i=0;i
函数不同的值(数组、键){
var count=array.length,
输出=[];
对于(变量i=0;i
试试这个:
function different_values(arr,key){
var diff=[];
for(var i = 0;i < arr.length;i++){
var k=arr[i][key];
if(diff.indexOf(k)===-1)diff.push(k);
}
return diff;
}
函数不同的_值(arr,键){
var-diff=[];
对于(变量i=0;i
试试这个:
function different_values(arr,key){
var diff=[];
for(var i = 0;i < arr.length;i++){
var k=arr[i][key];
if(diff.indexOf(k)===-1)diff.push(k);
}
return diff;
}
函数不同的_值(arr,键){
var-diff=[];
对于(变量i=0;i
只需在for循环中循环对象,并在结果数组中推送级别
编辑:添加了indexOf以获取唯一值
function different_values (arr, key) {
var result = [];
for (var i in arr) {
if (result.indexOf(arr[i][key]))
result.push(arr[i][key]);
}
return result;
}
确保纠正您的对象。元素之间缺少逗号:
{
"cod": 0
"level": "INF"
}
应该是:
{
"cod": 0,
"level": "INF"
}
只需在for循环中遍历对象,并在结果数组中推送级别
编辑:添加了indexOf以获取唯一值
function different_values (arr, key) {
var result = [];
for (var i in arr) {
if (result.indexOf(arr[i][key]))
result.push(arr[i][key]);
}
return result;
}
确保纠正您的对象。元素之间缺少逗号:
{
"cod": 0
"level": "INF"
}
应该是:
{
"cod": 0,
"level": "INF"
}
演示
演示是的,我喜欢这种重复数据消除方法。是的,我喜欢这种重复数据消除方法。您应该避免在阵列的
循环中使用<代码>对于(变量i=0,l=arr.length;i
会更好。此外,您还可以缓存数组的长度。我为什么要避免它?您应该避免在数组的
循环中使用for<代码>对于(变量i=0,l=arr.length;i
会更好。此外,您还可以缓存数组的长度。我为什么要避免它?您没有从输出数组中删除重复项,而这正是OP想要的。Oops没有注意到“不同”一词您没有从输出数组中删除重复项,而这正是OP想要的。Oops没有注意到“不同”一词