我有阵列" 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中)
答案 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);
}
});
});