Javascript 如何在数组递归函数中修改基元类型的元素? 例如,在C++中,我希望函数以相同的方式修改不同的向量深度,我可以: #include <stdio.h> #include <vector> template <typename V> void f(V& v){ for(auto& e : v) f(e); printf("\n"); } template <> void f(int& v){ v=v*v; } int main(){ std::vector<int> v1={1,2}; f(v1); for(int& i : v1) printf("%d ",i); printf("\n"); std::vector<std::vector<int> > v2={{3,4},{5,6,7}}; f(v2); for(std::vector<int> v : v2){ printf("["); for(int& i : v) printf("%d ",i); printf("]"); } return 0; };

Javascript 如何在数组递归函数中修改基元类型的元素? 例如,在C++中,我希望函数以相同的方式修改不同的向量深度,我可以: #include <stdio.h> #include <vector> template <typename V> void f(V& v){ for(auto& e : v) f(e); printf("\n"); } template <> void f(int& v){ v=v*v; } int main(){ std::vector<int> v1={1,2}; f(v1); for(int& i : v1) printf("%d ",i); printf("\n"); std::vector<std::vector<int> > v2={{3,4},{5,6,7}}; f(v2); for(std::vector<int> v : v2){ printf("["); for(int& i : v) printf("%d ",i); printf("]"); } return 0; };,javascript,arrays,recursion,Javascript,Arrays,Recursion,在javascript中,我可以返回一个新修改的数组: var f=函数(v){ if(数组isArray(v)){ var v2=[]; 对于(var i=0;i如果您不直接写入v2数组,而是直接写入v数组,那么这将完成您所追求的目标 var f = function(v){ if(Array.isArray(v)){ for(var i=0;i<v.length;i++) v[i] = f(v[i]); return v; }else re

在javascript中,我可以返回一个新修改的数组:

var f=函数(v){
if(数组isArray(v)){
var v2=[];

对于(var i=0;i如果您不直接写入v2数组,而是直接写入v数组,那么这将完成您所追求的目标

var f = function(v){
  if(Array.isArray(v)){
    for(var i=0;i<v.length;i++)
      v[i] = f(v[i]);
    return v;
  }else
    return v*v;
}
var f=函数(v){
if(数组isArray(v)){

对于(var i=0;i您可以在
JavaScript
中修改数组,因此您不需要创建并返回新数组,只需使用可以对其进行变异的函数(如或)修改现有数组即可

片段:

/*平方函数*/
var平方=函数(v){
if(数组isArray(v)){
对于(变量i=0,l=v.length;iconsole.log(原件);
您尝试执行的操作可以通过
JavaScript
完成。请查看my以了解执行方法。
var f = function(v){
  if(Array.isArray(v)){
    for(var i=0;i<v.length;i++)
      v[i] = f(v[i]);
    return v;
  }else
    return v*v;
}