Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何分配对象';s表示变量的循环输出_Javascript - Fatal编程技术网

Javascript 如何分配对象';s表示变量的循环输出

Javascript 如何分配对象';s表示变量的循环输出,javascript,Javascript,在将数组转换为对象时,我发现了一个无法解决的严重错误。当我们使用map方法到一个数组时,它会返回一些东西,但是对于对象,它不会返回任何东西 let output = for(var key in taggedOnes) { <- this is not a good approach at all. // But I'm looking for similar logic. let item = taggedOnes[key]; ... if(id==

在将数组转换为对象时,我发现了一个无法解决的严重错误。当我们使用
map
方法到一个数组时,它会返回一些东西,但是对于对象,它不会返回任何东西

let output = for(var key in taggedOnes) { <- this is not a good approach at all. 
// But I'm looking for similar logic.
      let item = taggedOnes[key];
      ...
      if(id===this.state.selectedClothId) {
        return ( <- I can't return it? :(
          <View
            key={id}
            style={{
              top,
              left,
              height: thumbSize,
              width: thumbSize,
              borderWidth: 2,
              borderColor: 'yellow'
            }}
          />
        );
      } else {
        return (
          <View
            key={id}
            style={{
              top,
              left,
              height: thumbSize,
              width: thumbSize,
              borderWidth: 2,
              borderColor: 'white'
            }}
          />
        );
      }
    }
    return output; <- I want to return whole React Elements in one element like array.
let output=for(taggedOnes中的var键){您可以使用它来获取一个数组,其中包含
taggedOnes
对象中的键。 然后,您可以调用此数组来浏览您的数组并返回另一个数组

我不知道在哪里创建
id
变量,但您可以轻松地调整以下示例:

const output = Object.keys(taggedOnes).map(key => {
      const item = taggedOnes[key];

      if (id === this.state.selectedClothId) {
        return (
          <View
            key={id}
            style={{
              top,
              left,
              height: thumbSize,
              width: thumbSize,
              borderWidth: 2,
              borderColor: 'yellow'
            }}
          />
        );
      } else {
        return (
          <View
            key={id}
            style={{
              top,
              left,
              height: thumbSize,
              width: thumbSize,
              borderWidth: 2,
              borderColor: 'white'
            }}
          />
        );
      }
    }
});
const-output=Object.key(taggedOnes.map)(key=>{
常量项=标记项[键];
if(id==this.state.selectedClothId){
返回(
);
}否则{
返回(
);
}
}
});

您需要的是
对象.key(taggedOnes).map
。for循环不返回任何内容,它只是在值上循环,for循环内的return语句将返回当前函数


另一方面,Map使用提供的函数转换数组的每个元素,在您的例子中,它正在/正在将其转换为react组件列表。

您可以使用
Object.keys(taggedOnes).Map
taggedOnes
对象转换为其转换值的数组

let output = Object.keys(taggedOnes).map(key => {
  let item = taggedOnes[key];
  ...
  if (id===this.state.selectedClothId) {
    return ...
  } else {
    return ...
  }
});

Object.keys
是一个返回对象键数组的函数。那么如何将多个react本机组件分配给变量
output
?现在我很困惑