javascript 如何从对象数组中获取具有相似或重复值的键并将结果显示到textArea中

3wabscal  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(111)
var myBooks = [{bok:"bookA",Auth:"authorA"},{bok:"bookB",Auth:"authorB"},{bok:"bookC",Auth:"authorA"},{bok:"bookD",Auth:"authorA"},{bok:"bookE",Auth:"authorE"},{bok:"bookF",Auth:"authorF"}]

这意味着我有多本书有同一作者。
我想说的是,在我的文本区。

bookC=authorA
bookD=authorA

我已经尝试了许多建议,在互联网上给出的有关这类问题,但没有运气。
我尝试过的最后一个js代码显示了所有的key:value对,而不是具有相似值的键

var myBooks = [{bok:"bookA",Auth:"authorA"},{bok:"bookB",Auth:"authorB"},{bok:"bookC",Auth:"authorA"},{bok:"bookD",Auth:"authorA"},{bok:"bookE",Auth:"authorE"},{bok:"bookF",Auth:"authorF"}]

myBooks.push({bok:mybookk,Auth:mythorr});
const uniquebooks = myBooks.filter(
  (obj, index) =>
    myBooks.findIndex(
      (item) => item.bok === obj.bok && item.Auth === obj.Auth
    ) === index
)

for(var i=0;i<uniquebooks.length;i++){
document.getElementById("cloned").innerHTML+=uniquebooks[i].Auth+'='+uniquebooks[i].bok;
}

如果我不在textarea值前面使用加号等号,我将只得到最后一个键:值对
我需要在图书发布后立即更新,代码应比较或检查其作者名,如果发现其与早期作者相似,则应显示具有相似作者名的新书,如上例所示,如果new book是bookZ,并且如果代码检查n发现authorA也与这本书相同
那么它应该将这个新结果显示到文本区域中。

bookC=authorA
bookD=authorA
bookZ=authorA

否则它保持沉默。
我已经尝试了许多建议,在这个论坛和其他网站上类似的情况下,我在这里列出两个代码。

var result= myBooks.filter(employee => employee.auth == "authorA");
for(var i=0;i<result.length;i++){
    console.log(result[i].bok)
};

以及

const values = [{id: 10, name: 'someName1'}, {id: 10, name: 'someName2'}, {id: 11, name:'someName3'}, {id: 12, name: 'someName4'}];

const lookup = values.reduce((a, e) => {
  a[e.id] = ++a[e.id] || 0;
  return a;
}, {});

console.log(values.filter(e => lookup[e.id]));
w51jfk4q

w51jfk4q1#

就像

var myBooks = [{ bok: "bookA", Auth: "authorA" }, { bok: "bookB", Auth: "authorB" }, { bok: "bookC", Auth: "authorA" }, { bok: "bookD", Auth: "authorA" }, { bok: "bookE", Auth: "authorE" }, { bok: "bookF", Auth: "authorF" }];

var duplicateValues = {};

// iterate over each object in the array
myBooks.forEach((obj) => {


if (obj["Auth"] in duplicateValues) {

    duplicateValues[obj["Auth"]].push(obj["bok"]);
} else {

    duplicateValues[obj["Auth"]] = [obj["bok"]];
}

});
console.log(duplicateValues)

相关问题