用于输出的document.write()JavaScript
我使用的是一组对象用于输出的document.write()JavaScript,javascript,arrays,function,object,Javascript,Arrays,Function,Object,我使用的是一组对象 let items = [ { type: "Shirt", gender: ["Men", "Women", "Boys", "Girls"], size: "Small", }, { type: "Shirt", gender:
let items = [
{
type: "Shirt",
gender: ["Men", "Women", "Boys", "Girls"],
size: "Small",
},
{
type: "Shirt",
gender: ["Men", "Women", "Boys"],
size: "Medium",
},
{
type: "Shirt",
gender: ["Men", "Women"],
size: "Large",
},
];
let filteredArr = [];
filteredArr = items;
我正在用输入搜索一件衬衫代码>使用以下代码
function fetchItemsByType() {
let isItemAva = filteredArr.filter(obj => obj["type"] === searchForType);
isItemAva.forEach(obj => {
for (let i = 0; i < obj["type"].length; i++) {
if (obj["type"] === searchForType) {}
} document.write(obj["type"] + " of " + obj["size"] + " size is Available for " + obj["gender"] + "<br>" + "<br>")
});
return isItemAva;
}
let getItemsByType = fetchItemsByType();
if (searchForType === searchForType) {
console.log(getItemsByType);
}
然后我用输入搜索“大小”代码>(注意:'Shirt'
和'Small'
都是像这样输入的)
代码是:
function fetchItemsBySize() {
let isSizeAva = getItemsByType.filter(obj => obj["size"] === searchForSize);
isSizeAva.forEach(obj => {
for (let i = 0; i < obj["size"].length; i++) {
if (obj["size"] === searchForSize) {}
}document.write(obj["type"] + " of " + obj["size"] + " size is Available for " + obj["gender"] + "<br>" + "<br>")
});
return isSizeAva;
}
let getItemsBySize = fetchItemsBySize();
if (searchForSize === searchForSize) {
console.log(getItemsBySize);
}
我只想展示
Shirt of Small size is Available for Men,Women,Boys,Girls
因为我在找一件衬衫
,尺寸小
而且应该只有
Shirt of Small size is Available for Men,Women,Boys,Girls
因此,只有在我输入了
类型
和尺寸
时,才能通过从最终输出中删除衬衫
的其他结果来获得特定的结果。不要使用document.write
也
没有用
您有一个循环和if(obj[“size”]==searchForSize){}
,它在该循环内不做任何事情
使用过滤器和映射,您的代码会工作得更好
我选择不使用默认参数,因为您似乎更愿意“手动”设置3个参数
let项目=[
{字体:“衬衫”,性别:[“男”、“女”、“男”、“女”],尺码:“小”},
{字体:“衬衫”,性别:[“男”、“女”、“男”],尺码:“中等”},
{字体:“衬衫”,性别:[“男”、“女”],尺码:“大号”},];
让searchForType=“”、searchForSize=“”、searchForGender=“”;
常量getItems=()=>items
.filter(({类型、大小、性别})=>
(searchForType===“”| | type===searchForType)&&
(searchForSize===“”| |大小===searchForSize)&&
(searchForGender==“”| |性别。包括(searchForGender)))
.map(({type,size,gender})=>size为${size}的${type}可用于${searchForGender?gender.filter(gender=>gender==searchForGender):gender.join(“,”)}
.加入(“
”);
//类型、大小和性别为空
searchForType=“”;
searchForSize=“”;
searchForGender=“”;
document.getElementById(“输出”).innerHTML=“所有类型:
”
document.getElementById(“输出”).innerHTML+=getItems();
searchForType=“Shirt”//所有衬衫
document.getElementById(“输出”).innerHTML+=“
所有衬衫:
”
document.getElementById(“输出”).innerHTML+=getItems();
searchForSize=“中”//中号衬衫
document.getElementById(“输出”).innerHTML+=“
所有媒体:
”
document.getElementById(“输出”).innerHTML+=getItems();
//所有男式衬衫
searchForSize=”“;//重置大小
searchForGender=“Men”;
document.getElementById(“输出”).innerHTML+=“
所有男性:
”
document.getElementById(“输出”).innerHTML+=getItems();
//女式衬衫
searchForGender=“女性”
document.getElementById(“输出”).innerHTML+=“
所有女式衬衫:
”
document.getElementById(“输出”).innerHTML+=getItems();
//所有中等女孩的衬衫
searchForType=“衬衫”;
searchForGender=“女孩”;
searchForSize=“中”;
document.getElementById(“输出”).innerHTML+=“
所有中等女孩衬衫:
”
document.getElementById(“输出”).innerHTML+=getItems()| |“未找到”//可选错误消息可用于所有呼叫
如果您可以使用过滤器和映射函数,您可以轻松获得所需的值,而不是使用forEach
函数,最佳做法是使用映射函数
我强烈建议您对此进行测试。你会赢得很多时间
let filteredArr = [];
const searchForSize = prompt("Enter a size value");
const findItemsWithSize = () => {
filteredArr = items.filter(fItem => fItem.size === searchForSize).map(item =>
console.log(item.type + " of " + item.size + " size is Available for " + item.gender.join(" "))
)
}
if (searchForSize === "Small") {
findItemsWithSize()
}
法鲁克你看到我的答案了吗?你不是在寻找答案items@mplungjan你来这里是为了让你的一天变得有意义吗DNo,我是来帮助人们的。包括您…谢谢@mplungjan我可以仅使用上述代码获得“衬衫”的结果吗?如果是,我需要在哪里进行更改@mplungjan mplungjan-我想设置我的代码,当我只输入
searchForType='Shirt'
时,所有可用Shirt
的结果都应该显示出来。接下来,当我用searchForType='Shirt'
输入searchForSize='Small'
时,应该会看到所有可用的Small
尺寸衬衫的结果。我希望我的问题是清楚的。你能帮我做同样的事情吗?好的,我现在已经包括了所有选项。希望有帮助
Shirt of Small size is Available for Men,Women,Boys,Girls
Shirt of Small size is Available for Men,Women,Boys,Girls
if (searchForSize === searchForSize) {
let filteredArr = [];
const searchForSize = prompt("Enter a size value");
const findItemsWithSize = () => {
filteredArr = items.filter(fItem => fItem.size === searchForSize).map(item =>
console.log(item.type + " of " + item.size + " size is Available for " + item.gender.join(" "))
)
}
if (searchForSize === "Small") {
findItemsWithSize()
}