我有这种类型的JSON数据
我编写了代码以消除JQuery中的重复记录
function GetUniqueTablesCategory(Data) {
var UniqueNames = $.unique(Data, function(d) {
return d.TableName;
});
return UniqueNames;
}
但是我在下面收到此错误,有人可以帮我解决这个问题。
答案 0 :(得分:1)
如果underscore.js可以接受,您可以这样编写您的方法:
function GetUniqueTablesCategory(data) {
return _.uniq(_.map(data, function(d){return d.Name}));
}
答案 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))]