Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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,我对JavaScript还很陌生,我做的这个练习已经困扰了我好几个小时了 我想编写一个Javascript函数,该函数需要一个数组,该数组可以包含字符串和/或数字(以及有限级别的嵌套字符串和/或数字数组),并返回一个Javascript对象,该对象显示每个唯一值的出现总数 像这样的 var myArray = [ 1, 2, 1, 'a', [ 'd', 5, 6 ], 'A', 2, 'b', 1, 'd' ]; var myResult = myFunction( myArray ); y

我对JavaScript还很陌生,我做的这个练习已经困扰了我好几个小时了

我想编写一个Javascript函数,该函数需要一个数组,该数组可以包含字符串和/或数字(以及有限级别的嵌套字符串和/或数字数组),并返回一个Javascript对象,该对象显示每个唯一值的出现总数

像这样的

var myArray = [ 1, 2, 1, 'a', [ 'd', 5, 6 ], 'A', 2, 'b', 1, 'd' ];
var myResult = myFunction( myArray );
yourResult = {
    1: 3,
    2: 2,
    'a': 1,
    'd': 2,
    5: 1,
    6: 1,
    'A': 1,
    'b': 1,
}
那么它应该返回这样的结果

var myArray = [ 1, 2, 1, 'a', [ 'd', 5, 6 ], 'A', 2, 'b', 1, 'd' ];
var myResult = myFunction( myArray );
yourResult = {
    1: 3,
    2: 2,
    'a': 1,
    'd': 2,
    5: 1,
    6: 1,
    'A': 1,
    'b': 1,
}
到目前为止,我只有这个。我不知道如何创建对象,但这根本不起作用。它广告数组中的所有值

Array.prototype.contains = function(v) {
for(var i = 0; i < this.length; i++) {
    if(this[i] === v) return true;
}
return false;
};

Array.prototype.unique = function() {
var arr = [];
for(var i = 0; i < this.length; i++) {
    if(this[i] instanceof Array) {
        for(var j = 0; i < this[i].length; j++){
        if (!arr.contains(this[i][j])){
            arr.push(this[i][j]);
        }
        } 
    }
    if(!arr.contains(this[i])) {
        arr.push(this[i]);
    }
}
return arr;
}

var myArray = [1,3,4,2,1,[1,2,3,6],2,3,8];
var myResult = duplicates.unique();

console.log(myResult);  
Array.prototype.contains=函数(v){
for(var i=0;i
我将其分为两个主要问题: 1.使数组成员处于一个级别(不嵌套)。 2.重复计数

我用递归解决的第一个问题,希望它能满足要求。第二个是关于计算实例

希望能有所帮助

var myArray=[1,2,1,a',[d',5,6],'a',2,b',1,d'];
var myResult=myFunction(myArray);
console.log(myResult);
函数myFunction(arr){
var r={};
对于(变量i=0;i
我将其分为两个主要问题: 1.使数组成员处于一个级别(不嵌套)。 2.重复计数

我用递归解决的第一个问题,希望它能满足要求。第二个是关于计算实例

希望能有所帮助

var myArray=[1,2,1,a',[d',5,6],'a',2,b',1,d'];
var myResult=myFunction(myArray);
console.log(myResult);
函数myFunction(arr){
var r={};
对于(变量i=0;i
我将其分为两个主要问题: 1.使数组成员处于一个级别(不嵌套)。 2.重复计数

我用递归解决的第一个问题,希望它能满足要求。第二个是关于计算实例

希望能有所帮助

var myArray=[1,2,1,a',[d',5,6],'a',2,b',1,d'];
var myResult=myFunction(myArray);
console.log(myResult);
函数myFunction(arr){
var r={};
对于(变量i=0;i
我将其分为两个主要问题: 1.使数组成员处于一个级别(不嵌套)。 2.重复计数

我用递归解决的第一个问题,希望它能满足要求。第二个是关于计算实例

希望能有所帮助

var myArray=[1,2,1,a',[d',5,6],'a',2,b',1,d'];
var myResult=myFunction(myArray);
console.log(myResult);
函数myFunction(arr){
var r={};
对于(变量i=0;i
除了您的代码之外
您可以将数组的所有元素放入第二个数组,该数组包含数组和子数组的所有元素。然后,您可以迭代第二个数组,并找到每个元素的匹配项,如下所示

var arr1 = [1, 2, 1, 'a', ['d', 5, 6], 'A', 2, 'b', 1, 'd'];
var arr = [];
var obj = {};

for (var i = 0; i < arr1.length; i++) {
    if (arr1[i].length == undefined || arr1[i].length == 1) {
        arr.push(arr1[i]);
    }
    else {
        for (var j = 0; j < arr1[i].length; j++) {
            arr.push(arr1[i][j]);
        }
    }
}

for (var i = 0, j = arr.length; i < j; i++) {
    if (obj[arr[i]]) {
        obj[arr[i]]++;
    }
    else {
        obj[arr[i]] = 1;
    }
}

console.log(obj);  
var arr1=[1,2,1,a',[d',5,6],'a',2,b',1,d'];
var-arr=[];
var obj={};
对于(变量i=0;ivar associative_array={}
function add_to_as(value){ //Add element to the global associative array
if(associative_array[value]==undefined){
    associative_array[value]=1;
}
else{
    associative_array[value] +=1;//add one
}
}

function myFunction( mydata ){
for(var i = 0; i < mydata.length; i++) {
    if(mydata[i] instanceof Array) { //recurse on sublists if any
        myFunction(mydata[i])
    }
    else{
        add_to_as(mydata[i]);
    }
}
}
//To test the function
var myArray = [ 1, 2, 1, 'a', [ 'd', 5, 6 ], 'A', 2, 'b', 1, 'd' ];
myFunction(myArray);
console.log(associative_array);