Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 过滤出对象中的特定关键帧_Javascript_Reactjs_React Native_Ecmascript 6 - Fatal编程技术网

Javascript 过滤出对象中的特定关键帧

Javascript 过滤出对象中的特定关键帧,javascript,reactjs,react-native,ecmascript-6,Javascript,Reactjs,React Native,Ecmascript 6,我正在写出一个对象的键/值对。我试图过滤掉对象中的两个关键点,如下所示: {Object.entries(params.char).filter('Attribute1').filter('Attribute2').map(([key,value], index) => <Text key={key}>{key}</Text>)} 但是,当我运行此命令时,会出现以下错误: “Array.prototype.filter回调必须是函数” 我不太确定如何解决这个问题,

我正在写出一个对象的键/值对。我试图过滤掉对象中的两个关键点,如下所示:

{Object.entries(params.char).filter('Attribute1').filter('Attribute2').map(([key,value], index) => <Text key={key}>{key}</Text>)}
但是,当我运行此命令时,会出现以下错误:

“Array.prototype.filter回调必须是函数”

我不太确定如何解决这个问题,但有没有办法解决这个问题,还是我做错了

谢谢

数组方法接受函数作为参数,而不是字符串。所以请用这个:

Object.entries(params.char).filter((item) => (item.indexOf('Attribute1') || item.indexOf('Attribute2') > -1 ))...
让ob={
属性1:11,
属性2:22,
属性3:33
};
console.log('notfiltered',Object.entries(ob));
让result=Object.entries(ob.filter)((item)=>(item.indexOf('Attribute1')>-1 | | item.indexOf('Attribute2')>-1));
log('Filtered:',result)
数组方法接受函数作为参数,而不是字符串。所以请用这个:

Object.entries(params.char).filter((item) => (item.indexOf('Attribute1') || item.indexOf('Attribute2') > -1 ))...
让ob={
属性1:11,
属性2:22,
属性3:33
};
console.log('notfiltered',Object.entries(ob));
让result=Object.entries(ob.filter)((item)=>(item.indexOf('Attribute1')>-1 | | item.indexOf('Attribute2')>-1));

console.log('Filtered:',result)
据我所知,您只想为属性1和属性2创建文本元素,不必链接过滤器……您可以一次性完成:

{Object.entries(params.char).filter(touple =>
   (touple[0] === 'Attribute1' || touple[0] === 'Attribute2')).map(touple => <Text key={touple[0]}>{touple[0]}</Text>)}
{Object.entries(params.char).filter(touple=>
(touple[0]==='Attribute1'| | touple[0]=='Attribute2')).map(touple=>{touple[0]}

据我所知,您只想为属性1和属性2创建文本元素,而不必链接过滤器……您可以一次完成:

{Object.entries(params.char).filter(touple =>
   (touple[0] === 'Attribute1' || touple[0] === 'Attribute2')).map(touple => <Text key={touple[0]}>{touple[0]}</Text>)}
{Object.entries(params.char).filter(touple=>
(touple[0]==='Attribute1'| | touple[0]=='Attribute2')).map(touple=>{touple[0]}

你几乎是自己做的:)

答案如下:

render() {
  const textElements = Object.entries(params.char)
    .filter(([key]) => key !== 'Attribute1' && key !== 'Attribute2')
    .map(([key, value]) => <Text key={key}>{key}, {value}</Text>);

  return (
    <View>
      {textElements}
    </View>
  );
}
render(){
const textElements=Object.entries(params.char)
.filter(([key])=>key!==“Attribute1”和&key!==“Attribute2”)
.map(([key,value])=>{key},{value});
返回(
{textElements}
);
}

你几乎是自己做的:)

答案如下:

render() {
  const textElements = Object.entries(params.char)
    .filter(([key]) => key !== 'Attribute1' && key !== 'Attribute2')
    .map(([key, value]) => <Text key={key}>{key}, {value}</Text>);

  return (
    <View>
      {textElements}
    </View>
  );
}
render(){
const textElements=Object.entries(params.char)
.filter(([key])=>key!==“Attribute1”和&key!==“Attribute2”)
.map(([key,value])=>{key},{value});
返回(
{textElements}
);
}

我尝试了这个方法,虽然它消除了错误,但仍然显示了所有3个属性。我已经更新了答案并添加了代码片段,似乎工作正常。哦,等等,我需要删除代码中的“.map”([key,value],index)=>”部分吗?是否“filter”替换了“map”在这种情况下?谢谢!不,您仍然需要
map
过滤器
仅用于过滤器属性,但
map
负责返回组件。我尝试了这个方法,虽然它消除了错误,但仍然显示所有3个属性。我更新了答案并添加了代码段,它似乎工作正常。哦,等等,我需要删除吗e我代码中的“.map”([key,value],index)=>”部分?在这种情况下,“filter”是否替换了“map”?谢谢!不,您仍然需要
map
filter
仅过滤属性,但
map
负责返回组件。我正在尝试写出对象中的所有内容,除了两个部分(属性1和属性2)。我想过滤掉它们,这样它们就不会出现在屏幕上。谢谢!然后你可以把===切换到!==这样它就可以抓取除这两个之外的所有内容,或者你可以使用lodash的omit,它将返回除你传递的键以外的所有内容。这将不起作用,因为
entries
方法返回数组的数组。请检查
Object.entries
doc:Ah以前没有真正使用过它,所以如果你想要这个键,它将只是这个例子的第一个索引。我会更新我的代码谢谢。如果你只需要这个键,你也可以使用Object.keys。我正在试着写出对象中的所有内容,除了两个部分(Attribute1和Attribute2)。我想过滤掉它们,这样它们就不会出现在屏幕上。谢谢!然后你可以把===切换到!==这样它就可以抓取除这两个之外的所有内容,或者你可以使用lodash的omit,它将返回除你传递的键以外的所有内容。这将不起作用,因为
entries
方法返回数组的数组。请检查
Object.entries
doc:Ah以前没有真正使用过它,所以如果你想要密钥,它将只是该文件的第一个索引。我会更新我的代码谢谢。如果你只需要密钥,你也可以使用Object.keys