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

时间:2015-05-13 07:28:31

标签: javascript jquery json

我有这种类型的JSON数据

enter image description here

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

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

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

enter image description here

4 个答案:

答案 0 :(得分:1)

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

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

fiddle

答案 1 :(得分:1)

尝试这样的事情:

$(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>

你也可以在这里找到类似的帖子。see

答案 2 :(得分:0)

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

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

  return UniqueNames ;
}

答案 3 :(得分:0)

您可以使用ES6中的Set编写单行代码

let uniqueNames = [...new Set(Data.map(d => d.TableName))]