我有一个动态触发的函数并返回一个数组:
45
45,46
45,46,47
在这里,我想得到的只是单一值意味着新的第一次 45 第二次 46 被解雇下次 47
有没有办法解决这个问题?
我试过这个:
function mydata(treeId){
console.log(treeId); // contain random data like 45,46,47
resultPush = [];
$.each(treeId, function(i, el){
if($.inArray(el, resultPush) === -1){
resultPush.push(el);
}
});
}
答案 0 :(得分:0)
您可以尝试使用$.unique()
:
$.unique(treeId); // unique elements
答案 1 :(得分:0)
我必须猜测,但我想你想在数组之外声明resultPush
,以便你可以知道之前调用的结果:
var resultPush = [];
function mydata(treeId){
for (var i=0; i<treeId.length; i++ {
var el = treeId[i];
if ($.inArray(el, resultPush) === -1) {
resultPush.push(el);
return el;
}
}
}
mydata([45]) // 45
mydata([45,46]) // 46
mydata([45,46,47]) // 47
答案 2 :(得分:0)
你需要一个容器数组:
var container = [];
每次推送数字:
var arr = []; // Contains your numbers...
for (var i = 0, iLen = arr.Length; i < iLen; i++) {
var exists = false;
for (var j = 0, jLen = container.Length; j < jLen; j++) {
if (container[j] == arr[i]) { exists = true; break; }
}
if (exists == false) {
container.push(arr[i]);
}
}
如果有人知道更好的方式,我全都听见了!