【问题标题】:Is there any way to make match each index of array with other within array but not with itself有什么方法可以使数组的每个索引与数组中的其他索引匹配,但不与自身匹配
【发布时间】:2020-07-08 17:13:28
【问题描述】:

这是我的初始数组

const a = [A,B,C,D];

我正在努力实现这样的结果

const finalarray = [
{key1 : A , key2 : B},{key1 : A , key2 : C},{key1 : A , key2 : D},
{key1 : B , key2 : A},{key1 : B , key2 : C},{key1 : B , key2 : D},
{key1 : C , key2 : A},{key1 : C , key2 : B},{key1 : C , key2 : D},
{key1 : D , key2 : A},{key1 : D , key2 : B},{key1 : D , key2 : C}]

您可以看到,在最终数组的每个对象中,没有与 {key1: A, key2: A} 这样的相同索引进行比较,这将是错误的我试图实现的是比较数组的每个索引但是不是我自己,我基本上是在合并一个不比较它的对象。接下来将用于排序。 谢谢

什么。我试试

what i try

render() {
    let arraytoRender = null;
    let newarr = [];
    if (this.state.array) {
      let arraytoRender1 = [];
      this.state.array.map(p => {
        arraytoRender1.push(p.nom);
        newarr.push(p.nom);
      });
      arraytoRender = arraytoRender1.join();
    }
    let i;

    for (i = 0; i < newarr.length; i++) {
      if (newarr[i] !== newarr[i]) {
        console.log(newarr);
      }
    }

【问题讨论】:

  • 请展示您为自己解决此问题所做的任何尝试。您应该尝试过,然后我们可以帮助您进行调试。 meta.stackoverflow.com/questions/261592/… 还评论How to Ask
  • render() { 让 arraytoRender = null;让 newarr = []; if (this.state.array) { let arraytoRender1 = []; this.state.array.map(p => { arraytoRender1.push(p.nom); newarr.push(p.nom); }); arraytoRender = arraytoRender1.join(); } 让我; for (i = 0; i
  • 搞砸了我的脑袋
  • 你能编辑问题并把它放在那里吗? cmets 中的代码很难阅读,也不是放置它的正确位置
  • 我编辑了问题

标签: javascript algorithm sorting hashmap hashtable


【解决方案1】:

如果你不担心支持 IE,那么你可以将原始数组映射到一个新数组,每次排列时忽略迭代的元素,最后将数组展平。

const a = ['A', 'B', 'C', 'D'];

const output = a.map((key1, index, array) => {
  let otherElements = array.filter((x, i) => i != index);
  
  return otherElements.map(key2 => ({ key1: key1, key2: key2 }));
}).flat();

console.log(output);

或者,您可以直接进行排列,然后删除不应该存在的排列。

const a = ['A', 'B', 'C', 'D'];

const output = a.map((key1, index, array) => {
  return array.map(key2 => ({ key1: key1, key2: key2 }));
}).flat().filter(x => x.key1 != x.key2);

console.log(output);

【讨论】:

    猜你喜欢
    • 2021-08-31
    • 2020-11-07
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 2015-01-03
    • 2017-12-25
    • 2018-06-28
    相关资源
    最近更新 更多