gpt4 book ai didi

javascript - JS 中的函数,返回一个对象,该对象在数组中具有唯一值以及它们出现的次数

转载 作者:行者123 更新时间:2023-11-28 19:13:33 25 4
gpt4 key购买 nike

我对 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,
}

到目前为止我所拥有的是这个。我不知道如何创建该对象,但这根本不起作用。它广告数组中的所有值

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);

最佳答案

我会将其分为两个主要问题:1. 使数组成员为一层(不嵌套)。2. 计算重复次数

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

希望对你有帮助

Fiddle example

var myArray = [ 1, 2, 1, 'a', [ 'd', 5, 6 ], 'A', 2, 'b', 1, 'd' ];
var myResult = myFunction( myArray );
console.log(myResult);

function myFunction(arr) {
var r = {};
for (var i=0 ; i < arr.length ; i++) {
if( Object.prototype.toString.call( arr[i] ) === '[object Array]' ) {
var sub = myFunction(arr[i]);
for (var attrname in sub) {
if (r[attrname])
r[attrname]++;
else {
r[attrname] = sub[attrname];
r[attrname] = 1;
}
}
}
else if (r[arr[i]])
r[arr[i]]++;
else
r[arr[i]] = 1;
}

return r;
}

关于javascript - JS 中的函数,返回一个对象,该对象在数组中具有唯一值以及它们出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30324124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com