javascript - 如果参数不存在则推送到对象

标签 javascript arrays push

我一直在尝试并搜索如何遍历参数以检查数组中是否已经存在这些参数,我还没有完全使用它,但是当存在重复值时它根本不会返回。

想法是将多个值传递给参数,然后循环遍历这些值,并且仅在数组中不存在时才推送。

var arr = [7,3,1];

function pushNew(obj) {
var prams = obj;

 for(var k = 0; k < obj.length; k++){

  for (var i = 0; i < arr.length; i++) {
    if (arr[i] == prams[k]) {
     return;
   }
 }
  array.push(prams[k]);
}
// console.info(arr);

}


  pushNew([2,7,4]);

最佳答案

获取所有唯一值的一种简短且更现代的方法是使用 Array.fromSet . Set 是一种类似于数组的结构,它只包含唯一值。 Array.from 将类似数组的结构转换为真正的数组。

在您的情况下,您可以只连接两个数组,将它们传递给 Set 以删除重复项,然后使用 Array.from 将其转换回常规数组.

var arr1 = [1, 2, 3, 4, 5];
var arr2 = [3, 4, 5, 6, 7];

var result = Array.from(new Set(arr1.concat(arr2)));

document.write(JSON.stringify(result));

关于javascript - 如果参数不存在则推送到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36929046/

相关文章:

javascript - 有没有办法在 xdmp.eval() 中使用换行符

c - 使用数组来统计选票

C++ 数组输出问题

Mercurial: "hg push"到 smb 共享不起作用

android - android 上的推送通知 : IBM MQTT

javascript - 更改 Google Charts 注释图表中的边框/背景?

javascript - 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

c - 使用字符串上的堆栈进行插入和弹出操作

javascript - Backbone/underscore.js json 到带有每个循环的模板

arrays - 使用标准库将 char 转换为 wchar_t?