相关疑难解决方法(0)

jQuery函数从数组中获取所有唯一元素?

jQuery.unique允许您获取数组的唯一元素,但文档称该函数主要供内部使用,并且仅对DOM元素进行操作.另一个SO响应表示该unique()函数对数字起作用,但是这个用例不一定是未来证据,因为它没有在文档中明确说明.

鉴于此,是否存在一个"标准"jQuery函数,用于仅访问数组中的唯一值 - 特别是整数等基元?(显然,我们可以使用函数构造一个循环each(),但我们是jQuery的新手,并且想知道是否有专用的jQuery函数.)

javascript jquery jquery-selectors

72
推荐指数
9
解决办法
13万
查看次数

如何在javascript中完成等效的LINQ SelectMany()

不幸的是,我没有JQuery或Underscore,只是纯粹的javascript(IE9兼容).

我想从LINQ功能中获得相当于SelectMany()的功能.

// SelectMany flattens it to just a list of phone numbers.
IEnumerable<PhoneNumber> phoneNumbers = people.SelectMany(p => p.PhoneNumbers);
Run Code Online (Sandbox Code Playgroud)

我可以做吗?

编辑:

感谢答案,我得到了这个工作:

var petOwners = 
[
    {
        Name: "Higa, Sidney", Pets: ["Scruffy", "Sam"]
    },
    {
        Name: "Ashkenazi, Ronen", Pets: ["Walker", "Sugar"]
    },
    {
        Name: "Price, Vernette", Pets: ["Scratches", "Diesel"]
    },
];

function property(key){return function(x){return x[key];}}
function flatten(a,b){return a.concat(b);}

var allPets = petOwners.map(property("Pets")).reduce(flatten,[]);

console.log(petOwners[0].Pets[0]);
console.log(allPets.length); // 6

var allPets2 = petOwners.map(function(p){ return p.Pets; }).reduce(function(a, b){ return a.concat(b); },[]); // all in …
Run Code Online (Sandbox Code Playgroud)

javascript c#

68
推荐指数
4
解决办法
3万
查看次数

从数组中删除重复的元素

例如,我有一个像这样的数组;

var arr = [1, 2, 2, 3, 4, 5, 5, 5, 6, 7, 7, 8, 9, 10, 10]
Run Code Online (Sandbox Code Playgroud)

我的目的是从数组中丢弃重复元素并获得这样的最终数组;

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)

如何在JavaScript中实现这一目标?

注意:数组未排序,值可以是任意顺序.

javascript arrays

58
推荐指数
5
解决办法
16万
查看次数

将自定义函数添加到Array.prototype中

我正在开发一个支持AJAX的asp.net应用程序.我刚刚为Array.prototype添加了一些方法

Array.prototype.doSomething = function(){
   ...
}
Run Code Online (Sandbox Code Playgroud)

这个解决方案对我有用,可以以"漂亮"的方式重用代码.

但是当我测试它与整个页面一起工作时,我遇到了问题.我们有一些自定义的ajax扩展器,并且它们开始表现为意外:一些控件在其内容或值周围显示"未定义".

可能是什么原因?我错过了修改标准对象原型的一些内容吗?

注意:我很确定在修改Array的原型时错误就开始了.它应该只与IE兼容.

javascript arrays internet-explorer

49
推荐指数
3
解决办法
5万
查看次数

Array.push()和唯一项

我有一个简单的例子,将唯一值推送到数组中.它看起来像这样:

  this.items = [];

  add(item) {
    if(this.items.indexOf(item) > -1) {
      this.items.push(item);
      console.log(this.items);
    }
  }
Run Code Online (Sandbox Code Playgroud)

看起来挺直截了当,对吧?不,看起来如此.它不会添加任何值.我确信这是我身上某种愚蠢的错误,但我似乎无法找到它.

javascript

34
推荐指数
8
解决办法
5万
查看次数

仅当使用“--downlevelIteration”标志或使用“es2015”或更高版本的“--target”时,才能迭代类型“Set&lt;unknown&gt;”

我试图获取数组中的所有 id,然后使用 React TypeScript 删除重复项。

这是我的代码:

const uniqueMuscle = workoutexercices.map((exercice: any) => {
    let exercicesId = exercice.id;
    exercicesId = [...new Set(exercicesId)];
    return exercicesId;
  });
Run Code Online (Sandbox Code Playgroud)

VSCode[...new Set(exercicesId)];用红色下划线告诉我: Type 'Set<unknown>' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher

所以我去了我的ts.config并更改了值,但仍然是相同的错误。

这是我的ts.config

{
  "compilerOptions": {
    "target": "es2015",
I   "downlevelIteration": true
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true, …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs

34
推荐指数
3
解决办法
4万
查看次数

如何使用唯一元素创建数组(即删除重复项)?

我有这个代码:

var ar = [10,7,8,3,4,7,6];

function isin(n,a){
  for (var i=0;i<a.length;i++){
    if (a[i]== n) {
      var b = true;
      return b;
    } else {
      var c = false;
      return c;
   }
  }
}

function unique(a){
  var arr = [];
  for (var i=0;i<a.length;i++){
    if (!isin(a[i],arr)){
      arr.push(a[i]);
    }
  }

 return arr;
}

alert(unique(ar));
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我尝试从原始数组创建新的唯一数组(没有重复).但我仍然得到原始阵列!哪里是我的错?

javascript arrays

31
推荐指数
5
解决办法
7万
查看次数

NodeJS:如何从Array中删除重复项

我有一个数组:

[
    1029,
    1008,
    1040,
    1019,
    1030,
    1009,
    1041,
    1020,
    1031,
    1010,
    1042,
    1021,
    1030,
    1008,
    1045,
    1019,
    1032,
    1009,
    1049,
    1022,
    1031,
    1010,
    1042,
    1021,
]
Run Code Online (Sandbox Code Playgroud)

现在我想从中删除所有重复项.NodeJ中是否有任何方法可以直接执行此操作.

arrays duplicates node.js

24
推荐指数
2
解决办法
5万
查看次数

过滤掉数组以仅包含唯一值

我需要过滤掉我的数组以仅包含唯一值.这是我的数组数据

["X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11"]
Run Code Online (Sandbox Code Playgroud)

预期的结果应该是

["X_row7", "X_row4", "X_row6", "X_row10", "X_row11", "X_row8", "X_row9"]
Run Code Online (Sandbox Code Playgroud)

我应该如何继续我的代码才能获得正确的结果.

newArray = [];
for(n in data){
  if(!newArray.indexOf(n)){
     newArray.push(n);
  }
}
console.log(newArray);
Run Code Online (Sandbox Code Playgroud)

如果您需要任何其他信息,请告诉我,我会提供.谢谢

javascript arrays

18
推荐指数
7
解决办法
7万
查看次数

删除数字数组中的所有重复数字

我收到了这个问题进行练习,措词使我感到困惑,因为我看到了可能想要的2个结果。

无论哪种方式,我都希望看到两种解决方案。

例如,如果我有一个数组:

let arr = [1, 2, 4, 2, 3, 3, 4, 5, 5, 5, 8, 8, 9, 10];
Run Code Online (Sandbox Code Playgroud)

我认为这是想要最终结果的一种:

let finalResult = [1, 2, 3, 4, 5, 8, 9, 10];
Run Code Online (Sandbox Code Playgroud)

要么:

let finalResult = [1, 9, 10];
Run Code Online (Sandbox Code Playgroud)

两者之间的区别在于,一个只是删除所有重复的数字,剩下其余部分,第二个只是想要任何非重复的数字。

无论哪种方式,我都想编写两个函数,每个函数执行一个。

这是别人给的,这是我的第二个解决方案。

let elems = {},

arr2 = arr.filter(function (e) {
   if (elems[e] === undefined) {
       elems[e] = true;
    return true;
  }
  return false;
});
console.log(arr2);
Run Code Online (Sandbox Code Playgroud)

我不确定第一个功能(删除所有重复项)。

javascript arrays duplicates

15
推荐指数
6
解决办法
2004
查看次数