我有一个包含属性名称,前缀和表格的对象数组。我需要检查一个对象是否具有与任何其他对象名称值相同的pref值。我写了一些代码,但它似乎并没有工作。JavaScript:如果另一个对象在另一个属性中具有相同值,则更改对象值
function seat() {
for (var i = 0; i < data.length; i++) {
if (data[i].pref != "") {
for (var c = 0; c < data.length; c++) {
if (data[i].pref == data[c].name) {
data[i].table = data[c].table
console.log(data[i].table + "first pref val");
console.log(data[c].table + "second pref val");
}
}
}
function randomize() {
let counts = [
[1, 6],
[2, 6],
[3, 6],
[4, 6]
];
data.forEach(obj => {
let i = Math.floor(Math.random() * counts.length);
obj.table = 'table' + counts[i][0];
if (--counts[i][1] == 0) counts.splice(i, 1);
})
}
randomize(1, 4);
console.log(data);
console.log("Right here ^");
};
};
var data = [{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
{
name: "",
pref: "",
table: ""
},
];
seat();
我让你成为一个片段。请缩短它以尽可能少的代码显示问题 – mplungjan
@mplungjan哦,好的,对不起。 – jscoder001
@ jscoder001,如果我想知道你真的想要**(最后三个问题没有说清楚),我可以帮你。请添加代码的目的以及您想要实现的目标。 –