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]));
1条答案
按热度按时间w51jfk4q1#
就像