gpt4 book ai didi

javascript - 如何判断数组中的元素是否重复?

转载 作者:行者123 更新时间:2023-11-28 15:37:30 24 4
gpt4 key购买 nike

大家好,我是编码新手,我想知道如何在不知道这些对象是什么的情况下找出数组是否有重复的对象,无论它们的顺序如何?例如:

我创建一个空数组:

var random_array = [];

然后我使用一个函数来推送该数组中的对象,所以我最终得到:

var random_array = [ball, ball, tree, ball, tree, bus, car];

在上面的数组中,我们有:

3 个球、2 棵树、1 辆公共(public)汽车、1 辆汽车。

那么我怎样才能知道这些重复的数字呢?我应该使用 for 循环还是什么?无论如何,我是编码新手,所以请耐心等待。提前致谢!

编辑:

好的,这是我的简单代码:

function Product(name, price) {
this.name = name;
this.price = price;
}

var register = {
total: 0,
list: [],

add: function(Object, quant) {
this.total += Object.price * quant;
for (x=0; x <quant; x++) {
this.list.push(Object);
}
},

undo: function() {
var last_item = this.list[this.list.length - 1];
this.total -= last_item.price;
this.list.pop(this.list[this.list.length - 1]);
},

print: function() {
console.log("Super Random Market");
for (x = 0; x < this.list.length; x++) {
console.log(this.list[x].name + ": " + this.list[x].price.toPrecision(3));
}
console.log("Total: " + this.total.toFixed(2));
}
}

var icecream_1 = new Product("Chocolate Icecream", 2.30);
var cake_1 = new Product("Chocolate cake", 4.00);

register.add(icecream_1, 5);
register.add(cake_1, 3);

register.print();

我正在尝试构建一个收银机,并且正在尝试找出如何只打印一次商品及其数量,而不是多次。

最佳答案

var randomArray = ["ball", "ball", "tree", "ball", "tree", "bus", "car"];
var itemCount = {};

randomArray.forEach(function(value){
if(value in itemCount) itemCount[value] = itemCount[value] + 1;
else itemCount[value] = 1;
});

然后您可以像这样引用数组中“球”的数量:itemCount.ball 这将返回 3。

fiddle :http://jsfiddle.net/3XpXn/2/

把它变小:

var randomArray = ["ball", "ball", "tree", "ball", "tree", "bus", "car"],
itemCount = {};

randomArray.forEach(function(value){
value in itemCount ? itemCount[value] = itemCount[value] + 1 : itemCount[value] = 1;
});

关于javascript - 如何判断数组中的元素是否重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25126054/

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