将foreach嵌入foreach

时间:2017-09-09 11:05:08

标签: javascript

我有阵列" A"保持值[a,b]和数组" B"持有价值[b,c]; 我想使用每一行数组" A"作为一个逻辑过滤器并循环到" B&#34 ;;

的每一行

我的工作是:

A.foreach(function(e) { // pick row n from A 
    B.foreach(function(x) { // run trough B
        if (e.value === x.value) { // business logic
            console.log(result);
        }
    });
});

问题 - 这是一种可接受的方法(将foreach嵌套在另一个foreach中)

2 个答案:

答案 0 :(得分:3)

对于基元(和对象引用):

m = np.cumsum(np.random.rand(30,6),axis=0)

m2 = np.concatenate((m,np.zeros(m.shape[1])[np.newaxis,:]*np.nan), axis=0)
plt.plot(m2[:,::2].T.flatten(),m2[:,1::2].T.flatten(), color="k" )  

plt.plot()

对于对象密钥相等:

const result = A.filter( el => B.includes(el));

嵌套forEachs是完全有效的,但在这种情况下,我更喜欢简单的for循环,因为它们是易碎的:

const result = A.filter( 
  el => B.some(
    el2 => el.value === el2.value
  )
);

答案 1 :(得分:0)

你可以试试这个:

而且对于在foreach内部写入forech这是一种可接受的方法,但是当数据太长而它变慢时,其复杂性将为O(n2)。

var A=['a','b'];
var B=['b','c'];
A.forEach(function(e) { // pick row n from A
    B.forEach(function(x) { // run trough B
        if (e.value === x.value) { // business logic
            console.log(x.value);
        }
    });
});