【问题标题】:How to pass extended parameter to a function? [duplicate]如何将扩展参数传递给函数? [复制]
【发布时间】:2017-02-13 14:08:13
【问题描述】:

我正在尝试将参数传递给函数,以便可以多次调用我的数组对象元素(因为我有很多,从 sql 查询返回)。

removeDuplicates(arr, x){
    var tmp = [];
    var tmp2=[];
    for(let i = 0; i < 50; i++){
        if(tmp.indexOf(arr[i].id) == -1){
        tmp.push(arr[i].id); //always id
        tmp2.push(arr[i].x);  //for example arr[i].name
        }
    }
    return tmp2;
}

如果我这样做并像这样调用方法:

 removeDuplicates(arraytag2, arraytag2.name); 

它不起作用。

【问题讨论】:

  • 你的意思是tmp2.push(arr[i][x]);
  • 如果arraytag2是array你怎么写arraytag2.name?
  • 我知道我不能应该是arraytag2[counter].name,只是想在这里找到一个快捷方式..
  • @JAG,不,我不是在找那个..
  • 当您说“它不起作用”时,您的真正意思是什么?它抛出一个错误?还是只是意想不到的结果?无论如何,如果您将完整的对象 arr 传递给函数,则无需传递 arr.name。

标签: javascript arrays json ajax


【解决方案1】:

为什么不在数组中使用神奇的filter 函数?

然后,您可以在函数中逐项进行自己的验证,并对其自己的属性进行验证。

function uniq(a) {
    var seen = {};
    return a.filter(function(item) {
        return seen.hasOwnProperty(item) ? false : (seen[item] = true);
    });
}

var arr = ["hello", "bye", "hola", "adios", "see you", "hello", "hola"];
var uniqArr = uniq(arr);

console.log(arr);
console.log(uniqArr);

【讨论】:

  • tnx,但我不是在寻找过滤..
  • @eugen_sunic,但是您需要过滤重复项才能删除它们,这不是您要找的吗?
猜你喜欢
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 2018-06-21
  • 2013-01-16
  • 2014-11-14
相关资源
最近更新 更多