Javascript 如何将循环更改为地图?
我还没有找到一种方法将for更改为Javascript 如何将循环更改为地图?,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我还没有找到一种方法将for更改为映射,因此我的计划不会使用for,而是希望在该函数的每个函数中使用映射 variantDefault = (colorId, sizeId) => { let selected = []; let i = 0; if (this.props.index === 0) { for (i = 0; i < this.props.values.length; i++) { if (this.props.values[i].i
映射
,因此我的计划不会使用for,而是希望在该函数的每个函数中使用映射
variantDefault = (colorId, sizeId) => {
let selected = [];
let i = 0;
if (this.props.index === 0) {
for (i = 0; i < this.props.values.length; i++) {
if (this.props.values[i].id === colorId) {
selected = this.props.values[i];
}
}
}
if (this.props.index === 1) {
for (i = 0; i < this.props.values.length; i++) {
if (this.props.values[i].id === sizeId) {
selected = this.props.values[i];
}
}
}
console.log(selected);
return selected;
};
variantDefault=(colorId,sizeId)=>{
让选定的=[];
设i=0;
if(this.props.index==0){
对于(i=0;i
您可以取回找到的物品
variantDefault = (colorId, sizeId) => this.props.values.find(
({ id }) => id === [colorId, sizeId][this.props.index]
) || [];
使用
Array.prototype.filter
似乎更合适
variantDefault=(colorId,sizeId)=>{
if(this.props.index.isBetween(0,arguments.length,1))返回[];
var compareTo=参数[this.props.index];
返回这个.props.values.filter(item=>item.id==compareTo);
};代码>您可以这样尝试
variantDefault = (colorId, sizeId) => {
let selected = [];
if (this.props.index === 0) {
this.props.values.map((data) => {
if(data.id === colorId){
selected.push(data)
}
})
}
if (this.props.index === 1) {
this.props.values.map((data) => {
if (data.id === sizeId) {
selected.push(data)
}
})
}
console.log(selected);
return selected;
};
您的意思是要使用Array.map
?请进一步解释你的问题。同时添加所有相关代码。请添加此
、您得到的内容以及不起作用的内容。这是一个示例。您甚至可能不需要map
。类似于find
或filter
的功能可能会起作用。请发布预期的行为,而不是尝试的解决方案如果这应该是尝试使用数组#映射
,那么它是不正确的,因为该方法根本不适合这样做。如果这是关于,那么我不确定它与这个问题有什么关系。Array.prototype.map
用于数组A[n],并返回一个长度(n)相同的数组A'。我想你需要的是Array.prototype.reduce
这个问题真的不清楚。我也会选择.find
,但它会打破当前的行为,返回最后一个匹配项,因为它会在找到每个匹配项时不断覆盖选定的
。我知道,但如果给定的代码起作用,然后我假设一个唯一的结果。@NinaScholz问题中的代码将返回找到的最后一个元素,而您的代码将返回第一个元素。(有可能op想要返回第一个或推送
并返回全部)好的,注释的另一部分:variantDefault是单数的。只要op没有说明op想要什么,也没有向问题提供一些数据,任何答案都是猜测。