如何解决为什么值的属性存储在我的对象字符串中,我如何访问它们以增加出现次数?
创建函数调用频率并传递数组。我正在取数组中的整数值并将它们存储在一个对象中,我的最终目标是检查已经看到的每个数字的出现,如果它们被看到,我将增加计数。为什么属性设置为字符串?,如何访问整数以增加计数。我想增加我对对象的理解。
function frequency(array) {
let object = {}
let count = 0
let num
let temp = []
for (var i = 0; i < array.length; i++) {
num = array[i]
object[num] = count++
console.log(object);
}
}
console.log(frequency([1,2,3,4]));
解决方法
Javascript 对象属性是字符串:任何键值对。因此,您将数字视为字符串键。当您使用整数键(或任何其他非字符串值)设置属性时,它首先被转换为字符串。
要获得数字出现的正确计数,您应该增加与值对应的键,而不是仅仅增加计数变量。我还添加了 typeof 行来检查并确保之前已经设置了键值对。如果不是,它会创建一个并将其赋值为 1,因为这是我们第一次看到该数字。
function frequency(array) {
let object = {}
let count = 0
let num
let temp = []
for (var i = 0; i < array.length; i++) {
num = array[i]
if(typeof(object[num]) != "undefined")
object[num]++;
else
object[num] = 1;
}
console.log(object);
}
frequency([1,2,3,4,5,1]);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。