Javascript 如何使用for循环从数组的数组中删除项而不使用js方法?

Javascript 如何使用for循环从数组的数组中删除项而不使用js方法?,javascript,Javascript,我使用for循环仅从数组的数组中移除3 我尝试了一些条件语句,但它对我不起作用 让myArray=[ [1, 2, 3], [5, 4, 3], [3, 6, 7], [3, 8, 9] ]; 设newArray=[]; for(设i=0;i

我使用for循环仅从数组的数组中移除3

我尝试了一些条件语句,但它对我不起作用

让myArray=[
[1, 2, 3],
[5, 4, 3],
[3, 6, 7],
[3, 8, 9]
];
设newArray=[];
for(设i=0;i}
myArray[i]
是一个数组,您还必须循环遍历
myArray[i]
的项

让myArray=[[1,2,3]、[5,4,3]、[3,6,7]、[3,8,9];
设newArray=[];

对于(设i=0;i你有一个二维数组,但你把它当作一维数组

请尝试以下操作:

let myArray = [
  [1, 2, 3],
  [5, 4, 3],
  [3, 6, 7],
  [3, 8, 9]
];
let newArray = [];
for (let i = 0; i < myArray.length; i++) {
  newArray.push([]);
  for (let j = 0; j < myArray[i].length; j++) {
     if (myArray[i][j] != 3) {
       newArray[i].push(myArray[i][j]);           
     }
   }
}
console.log(newArray);
让myArray=[
[1, 2, 3],
[5, 4, 3],
[3, 6, 7],
[3, 8, 9]
];
设newArray=[];
for(设i=0;i
让myArray=[
[1, 2, 3],
[5, 4, 3],
[3, 6, 7],
[3, 8, 9]
];
设newArray=[];
for(设i=0;iconsole.log(newArray);
这是一种单循环方法,根据实际循环目的,使用长度的动态检查

您可以分配所有值,并为嵌套数组获取一个新索引
k
,以分配给正确的索引。此索引仅在有效值上递增

var myArray=[[1,2,3],[5,4,3],[3,6,7],[3,8,9],
newArray=[],
i、 j,k;
对于(i=0;i<(myArray[j]| | myArray).长度;i++){
如果(j==未定义){
j=i;
i=0;
k=0;
newArray[j]=[];
}
if(myArray[j][i]!==3){
newArray[j][k++]=myArray[j][i];
}
如果(i+1>=myArray[j].length){
i=j;
j=未定义;
}
}
console.log(newArray);

.as控制台包装{max height:100%!important;top:0;}
问题在于您的流。 以下是您的代码的外观:

var newArray=[];
var-temp=[];
var myArray=[
[1, 2, 3],
[5, 4, 3],
[3, 6, 7],
[3, 8, 9]
];
对于(var i=0;i
console.log(newArray);
[…]!=3
真的
-始终,您希望迭代子数组,也请添加所需的结果。它是嵌套数组吗?我想您犯了一个错误,可能
myArray
会是这样吗?
让myArray=[1,2,3,4,3,3,6,7,3,8,9]
-如果没有嵌套数组,您可能希望在问题中添加一个for循环-很幸运,我在发布minepush是js后看到了您的答案method@Jaromanda我想他不想使用任何js库,或任何数组方法,如.flat等。至少我的理解是这样的::-)为什么过滤或映射被排除而不是推送?@Iffy-你不能这样做,因为你有二维数组和奇怪的特定排除spush是一种js方法。我想用1 for循环解决错误,但不要两次。@Iffy你不能用二维数组和“无js方法”来解决这个问题@如果您可以使用公式
i*myArray.length+j
以相反的方式一看就可以解决这个问题,但这不是一个规范数组,您可以从
myArray[1]
myArray[0]
中获得更多项。为什么你需要一个环?如果计算相同的长度,两个循环的速度与一个循环的速度相同。@JaromandaX
length
也是一种JS方法!
push
length
都是我们在JS中使用数组的方式。我想OP不需要任何函数数组,比如
map
flat
etcpush是一个jsmethod@JaromandaX,我想OP的意思是说
map()
filter()
reduce()…
,但OP没有这样说-为什么要将它们排除在外?如果你不能用二维数组和“无js方法”-您可能希望将此附加条件添加到question@Mamun-我知道-我要强调的是,这个问题是徒劳的一个毫无意义的练习Push是一个js方法:OP现在想要一个for循环(你永远不会赢这个:p)看看你之前发布的所有答案中的评论:pexcellent,但是一个新的转折点-只允许一个循环(如果有人提出了一个答案,我相信OP会再次更改参数)