如何从Json数据中获取不同的值而不进行排序

时间:2022-04-03 13:36:37

I have this type of JSON data

我有这种类型的JSON数据

如何从Json数据中获取不同的值而不进行排序

I have written the code to eliminate duplicate records in JQuery

我编写了代码来消除JQuery中的重复记录

function GetUniqueTablesCategory(Data) {
  var UniqueNames = $.unique(Data, function(d) {
    return d.TableName;
  });
  return UniqueNames;
}

But I am getting this error below, can anyone please help me out to eliminate this issue.

但我在下面收到此错误,任何人都可以帮我解决这个问题。

如何从Json数据中获取不同的值而不进行排序

3 个解决方案

#1


If underscore.js is acceptable, you can write your method like this:

如果underscore.js可以接受,你可以像这样编写你的方法:

function GetUniqueTablesCategory(data) {
  return _.uniq(_.map(data, function(d){return d.Name}));
}

fiddle

#2


try something like this:

尝试这样的事情:

$(document).ready(function() {
	var lookup = {};
	var obj = [{'TableName': 'prop1','value5': 'prop3'},{ 'TableName': 'prop1','value5': 'prop3'}, {'TableName': 'prop3','value5': 'prop3'}];
	var array=[];
	for (var ob, i = 0; ob = obj[i++];) {
		  var name = ob.TableName;

		  if (!(name in lookup)) {
		    lookup[name] = 1;
		    array.push(name);
		  }
		}

	alert(JSON.stringify(array));
	
	});//submit click 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

you can find a similar thread here also.see

你也可以在这里找到类似的线程

#3


You can do that with a simple loop :

你可以用一个简单的循环来做到这一点:

function GetUniqueTablesCategory(Data) {
  var UniqueNames = [];
  Data.forEach(function(value) {
      if (UniqueNames.indexOf(value.TableName) === -1) {
          UniqueNames.push(value.TableName);
      }
  });

  return UniqueNames ;
}

#1


If underscore.js is acceptable, you can write your method like this:

如果underscore.js可以接受,你可以像这样编写你的方法:

function GetUniqueTablesCategory(data) {
  return _.uniq(_.map(data, function(d){return d.Name}));
}

fiddle

#2


try something like this:

尝试这样的事情:

$(document).ready(function() {
	var lookup = {};
	var obj = [{'TableName': 'prop1','value5': 'prop3'},{ 'TableName': 'prop1','value5': 'prop3'}, {'TableName': 'prop3','value5': 'prop3'}];
	var array=[];
	for (var ob, i = 0; ob = obj[i++];) {
		  var name = ob.TableName;

		  if (!(name in lookup)) {
		    lookup[name] = 1;
		    array.push(name);
		  }
		}

	alert(JSON.stringify(array));
	
	});//submit click 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

you can find a similar thread here also.see

你也可以在这里找到类似的线程

#3


You can do that with a simple loop :

你可以用一个简单的循环来做到这一点:

function GetUniqueTablesCategory(Data) {
  var UniqueNames = [];
  Data.forEach(function(value) {
      if (UniqueNames.indexOf(value.TableName) === -1) {
          UniqueNames.push(value.TableName);
      }
  });

  return UniqueNames ;
}