Javascript 如何从数组中拆分和获取选择数据

Javascript 如何从数组中拆分和获取选择数据,javascript,jquery,arrays,Javascript,Jquery,Arrays,我在JavaScript中有这样的数组 var a = [1,2,3,4,5,"4","12","2",6,7,"4",3,"2"]; 我的问题是 如何拆分数组以将(逗号)更改为“;” 如何返回数组中的字符串数以及返回总值,而不考虑变量类型 如何返回平均值(无论变量类型如何) 回答问题1 1.将其转换为字符串 var x=a.toString(); 2.执行全局替换 var y= x.replace(/,/g,";"); 3.这将为您提供“1;2;3;4;5;4;12;2;6;7;4;3

我在JavaScript中有这样的数组

var a = [1,2,3,4,5,"4","12","2",6,7,"4",3,"2"]; 
我的问题是

  • 如何拆分数组以将(逗号)更改为“;”

  • 如何返回数组中的字符串数以及返回总值,而不考虑变量类型

  • 如何返回平均值(无论变量类型如何)


  • 回答问题1

    1.将其转换为字符串

    var x=a.toString();
    
    2.执行全局替换

    var y= x.replace(/,/g,";");
    
    3.这将为您提供
    “1;2;3;4;5;4;12;2;6;7;4;3;2”

    对于问题2
    只需使用
    a.length
    方法。这将为您提供元素总数。我不确定字符串元素部分。

    回答问题1

    1.将其转换为字符串

    var x=a.toString();
    
    2.执行全局替换

    var y= x.replace(/,/g,";");
    
    3.这将为您提供
    “1;2;3;4;5;4;12;2;6;7;4;3;2”

    对于问题2
    只需使用
    a.length
    方法。这将为您提供元素总数。我不确定字符串元素部分。

    更改数组分隔符:

    a.join(';');
    
    var stringCount = 0;
    for (var i = 0; i < a.length; i++){
      if (typeof a[i] === 'string'){
        stringCount++;
      }
    }
    
    alert("The number of strings is: " + stringCount);
    
    var entireLength = a.length;
    
    参考

    数组中的字符串数:

    a.join(';');
    
    var stringCount = 0;
    for (var i = 0; i < a.length; i++){
      if (typeof a[i] === 'string'){
        stringCount++;
      }
    }
    
    alert("The number of strings is: " + stringCount);
    
    var entireLength = a.length;
    
    每种类型与整体相比的百分比

    var stringPerc = (stringCount)/(stringCount + entireLength)
    
    var otherPerc = (entireLength - stringCount)/(stringCount + entireLength)
    

    更改数组分隔符:

    a.join(';');
    
    var stringCount = 0;
    for (var i = 0; i < a.length; i++){
      if (typeof a[i] === 'string'){
        stringCount++;
      }
    }
    
    alert("The number of strings is: " + stringCount);
    
    var entireLength = a.length;
    
    参考

    数组中的字符串数:

    a.join(';');
    
    var stringCount = 0;
    for (var i = 0; i < a.length; i++){
      if (typeof a[i] === 'string'){
        stringCount++;
      }
    }
    
    alert("The number of strings is: " + stringCount);
    
    var entireLength = a.length;
    
    每种类型与整体相比的百分比

    var stringPerc = (stringCount)/(stringCount + entireLength)
    
    var otherPerc = (entireLength - stringCount)/(stringCount + entireLength)
    
    使用
    a.join(“;”)
    将数组转换为以分号分隔的字符串

    要返回数组中的字符串数,只需遍历它并使用
    toString.call()
    如下所示:

    var total = 0;
    for (var i = 0, n = a.length; i < n; i++) {
        if (toString.call(a[i]) === '[object String]') total++;
    }
    
    如果您想要平均值,只需取上面的代码,然后执行
    total/a.length使用
    a.join(“;”)
    将数组转换为以分号分隔的字符串

    要返回数组中的字符串数,只需遍历它并使用
    toString.call()
    如下所示:

    var total = 0;
    for (var i = 0, n = a.length; i < n; i++) {
        if (toString.call(a[i]) === '[object String]') total++;
    }
    
    如果您想要平均值,只需取上面的代码,然后执行
    total/a.length

    这是我的版本:

    var a = [1,2,3,4,5,"4","12","2",6,7,"4",3,"2"], sum = 0, strings = 0;
    
    var joined = a.join(';');
    console.log("Joined: " + joined);
    
    for (var i = 0; i < a.length; i++) {
        sum += parseInt(a[i]);
    
        if (typeof a[i] === "string") {
            strings++;
        }
    }
    
    var avg = sum / a.length;
    
    console.log('Sum: ' + sum);
    console.log('Average: ' + avg);
    console.log('Strings: ' + strings);
    
    var a=[1,2,3,4,5,4,12,2,6,7,4,3,2],和=0,字符串=0;
    var join=a.join(“;”);
    console.log(“Joined:+Joined”);
    对于(变量i=0;i
    并链接到。

    以下是我的版本:

    var a = [1,2,3,4,5,"4","12","2",6,7,"4",3,"2"], sum = 0, strings = 0;
    
    var joined = a.join(';');
    console.log("Joined: " + joined);
    
    for (var i = 0; i < a.length; i++) {
        sum += parseInt(a[i]);
    
        if (typeof a[i] === "string") {
            strings++;
        }
    }
    
    var avg = sum / a.length;
    
    console.log('Sum: ' + sum);
    console.log('Average: ' + avg);
    console.log('Strings: ' + strings);
    
    var a=[1,2,3,4,5,4,12,2,6,7,4,3,2],和=0,字符串=0;
    var join=a.join(“;”);
    console.log(“Joined:+Joined”);
    对于(变量i=0;i

    并链接到。

    所有结果都在一个循环中

    0。。。n-4:数据
    n-3:所有字符串的计数
    n-2:总和
    n-1:平均值

    var数据=[1,2,3,4,5,4,12,2,6,7,4,3,2”],
    结果=data.concat(data.reduce(函数r,a,i){
    a的类型==='string'&&r[0]+%;
    r[1]+=+a;
    r[2]=r[1]/i;
    返回r;
    }连接(“;”);
    
    document.write(“”+JSON.stringify(结果,0,4)+“”)所有结果都在一个循环中

    0。。。n-4:数据
    n-3:所有字符串的计数
    n-2:总和
    n-1:平均值

    var数据=[1,2,3,4,5,4,12,2,6,7,4,3,2”],
    结果=data.concat(data.reduce(函数r,a,i){
    a的类型==='string'&&r[0]+%;
    r[1]+=+a;
    r[2]=r[1]/i;
    返回r;
    }连接(“;”);
    
    document.write(“”+JSON.stringify(结果,0,4)+“”)我的答案:1。只有当您希望结果为字符串时,这才是可能的。使用
    a.join(“;”)
    2。循环数组,如果字符串->转换为数字,并将其添加到
    sum
    。例如,
    a.reduce((sum,el)=>sum+Number(el+“”),0)
    是的,我希望结果是一个字符串,所以我必须首先将数组解析为字符串?我的答案是:3。你在#2
    var avg=sum/a.length中得到了所有的总和我的答案:1。只有当您希望结果为字符串时,这才是可能的。使用
    a.join(“;”)
    2。循环数组,如果字符串->转换为数字,并将其添加到
    sum
    。例如,
    a.reduce((sum,el)=>sum+Number(el+“”),0)
    是的,我希望结果是一个字符串,所以我必须首先将数组解析为字符串?我的答案是:3。你在#2
    var avg=sum/a.length中得到了所有的总和将其转换为字符串并进行全局替换是完全不必要的。您只需使用
    .join(separator)
    功能即可。它适用于问题1,谢谢。。但对于Q2来说,它不起作用。将其转换为字符串并进行全局替换是完全没有必要的。您只需使用
    .join(separator)
    功能即可。它适用于问题1,谢谢。。但是对于第二个问题,它不起作用。