Javascript 函数,该函数返回数组中具有唯一值的对象及其出现次数
我对JavaScript还很陌生,我做的这个练习已经困扰了我好几个小时了 我想编写一个Javascript函数,该函数需要一个数组,该数组可以包含字符串和/或数字(以及有限级别的嵌套字符串和/或数字数组),并返回一个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
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);