Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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 - Fatal编程技术网

Javascript 如何返回显示每个唯一值出现总数的对象?

Javascript 如何返回显示每个唯一值出现总数的对象?,javascript,Javascript,大家好,我是JavaScripts新手,希望你们中的任何人都能帮我弄明白。谢谢 我的问题是如何编写一个函数,该函数需要一个包含字符串和/或数字的数组(以及有限级别的嵌套字符串和/或数字数组),并返回一个显示每个唯一值出现总数的对象 function functionName() { const inputArray = [ 2, 5, 2, 'a', [ 'd', 5, 2, ['b', 1], 0 ], 'A', 5, 'b', 2, 'd' ]; const outputResult

大家好,我是JavaScripts新手,希望你们中的任何人都能帮我弄明白。谢谢

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

function functionName() {

 const inputArray = [ 2, 5, 2, 'a', [ 'd', 5, 2, ['b', 1], 0 ], 'A', 5, 'b', 2, 'd' ];
 const outputResult = functionName(inputArray);
}
对象中的键是数组中找到的唯一值,每个键的值是每个唯一键的出现次数

我想要的结果是:

 {
'2': 4,
'5': 3,
'a': 1,
'd': 2,
'b': 2,
'1': 1,
'0': 1,
'A': 1,
 }

您需要递归地获取每个值的出现次数,如在
calculateoccurrences
中实现的:

const calculateoccurrences=函数(输入数组、输出结果){
inputArray.forEach(函数(值){
if(typeof(value)=='number'| | typeof(value)=='string'){
输出结果[值]=输出结果[值]?输出结果[值]+1:1;
}else if(Array.isArray(值)){
计算发生率(值、输出结果);
}
})
}
常量输入数组=[2,5,2,'a',[d',5,2,['b',1],0],'a',5,'b',2,'d';
常量输出结果={}
计算发生率(输入、输出结果);
console.log(outputResult)您可以尝试:

constinputarray=[2,5,2,a',[d',5,2,b',1,0],'a',5,b',2,d'];
const result=inputArray.flat(无穷大).reduce((acc,item)=>(acc[item]=(acc[item]| 0)+1,acc),{})

log(result)
在这种情况下,将数组转换为字符串更容易

var输入=[2,5,2,'a',[d',5,2,[b',1],0],'a',5,'b',2,'d';
//转换为字符串并替换“,”字符
var stringInput=input.toString().replace(/,/g',);
var输出={};
//计数
对于(var i=0;i控制台日志(输出)您可以共享显示您迄今为止尝试的代码吗?您可以检查此项。你应该先学习基本知识,然后再开始你的案例。