Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从数组获取值-Javascript_Javascript_Arrays - Fatal编程技术网

从数组获取值-Javascript

从数组获取值-Javascript,javascript,arrays,Javascript,Arrays,我尽了最大努力,但最后还是无法记录结果 var arr = [2, 2, 2, 2, 2, 4, 5, 5, 5, 9]; function foo(arr) { var a = [], b = [], prev; arr.sort(); for ( var i = 0; i < arr.length; i++ ) { if ( arr[i] !== prev ) { a.push(arr[i]);

我尽了最大努力,但最后还是无法记录结果

var arr = [2, 2, 2, 2, 2, 4, 5, 5, 5, 9];

function foo(arr) {
    var a = [], b = [], prev;

    arr.sort();
    for ( var i = 0; i < arr.length; i++ ) {
        if ( arr[i] !== prev ) {
            a.push(arr[i]);
            b.push(1);
        } else {
            b[b.length-1]++;
        }
        prev = arr[i];
    }

    return [a, b];
}

var result = foo(arr);
var a = result[0]
var b = result[1]
var aa=a.split(",");
var ab=b.split(",");
var a = a.split(",").length;
var b = b.split(",").length;
for (c = 0; c < a; c++){
console.log(aa[c]);
console.log(ab[c]);}
var-arr=[2,2,2,2,4,5,5,5,9];
函数foo(arr){
var a=[],b=[],上一个;
arr.sort();
对于(变量i=0;i
我想从循环中的两个数组结果[0]和结果[1]中逐个获取值。

现在我可以用逗号分隔所有的值,但是当我分割值时,什么也没有显示

您可以创建一个空对象来跟踪重复次数&一个仅保存唯一值的数组。使用
indexOf
查找元素是否已存在于
uniqArray

var-arr=[2,2,2,2,4,5,5,5,9];
var repCount={},//跟踪重复次数
uniqArray=[];//只保存唯一的值
arr.forEach(功能(项目){
if(uniqArray.indexOf(项)=-1){
//id项不存在,请推送它
不合格推送(项目)
}
//检查对象是否已有键,例如2,4,5,9
如果(!repCount.hasOwnProperty(项)){
repCount[item]=1//如果不是,则创建新密钥
}否则{
//如果有,则增加计数
重复计数[项目]=重复计数[项目]+1
}
})

log(uniqArray,repCount)
查看您的评论


所以基本上我想从数组中得到唯一的数值,以及这个特定值在另一个变量中的重复次数

您可以通过使用reduce函数来实现这一点

var-arr=[2,2,2,2,4,5,5,5,9];
var a=arr.REDUCT(功能(acc,下一个){
acc[下一步]=acc[下一步]?acc[下一步]+1:1;
返回acc;
}, {});
控制台日志(a)您就快到了:

var-arr=[2,2,2,2,4,5,5,5,9];
函数foo(arr){
var a=[],b=[],上一个;
arr.sort();
对于(变量i=0;i对于(i=0;i这段代码试图做什么?你能告诉我预期的输出是什么吗?似乎你想删除重复项。基本上,我想从数组中获得唯一的编号以及该特定值在另一个变量中的重复次数。
a=result[0]
b=result[1]
是数组,不是字符串。它们没有
split()
method.检查开发工具中的错误。如何分割数组的值?您能给我一个解决方案吗?我想要不同变量的值var a=唯一值var b=重复次数重复工作在这里复制代码之前我测试过。@piyusverma-或者只需按您的要求给我示例输出。