Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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_React Native - Fatal编程技术网

有人能告诉我如何只对JavaScript数组中嵌套的一些项求和吗?

有人能告诉我如何只对JavaScript数组中嵌套的一些项求和吗?,javascript,react-native,Javascript,React Native,我对这个代码不是很自豪ㅠㅠ 我在数组中有6000个对象,只想对数组中的10个项目求和。现在我给程序加上十个编码块 有人能告诉我如何让它看起来像编程吗 [{Number((items.find(x=>x.id===indexTwoId+101).as=='1'?'1':'0'))+Number((items.find(x=>x.id==indexTwoId+102).as=='1'?'1':'0'))+Number((items.find(x=>x.id==indexTwoId+103).as='

我对这个代码不是很自豪ㅠㅠ 我在数组中有6000个对象,只想对数组中的10个项目求和。现在我给程序加上十个编码块

有人能告诉我如何让它看起来像编程吗

[{Number((items.find(x=>x.id===indexTwoId+101).as=='1'?'1':'0'))+Number((items.find(x=>x.id==indexTwoId+102).as=='1'?'1':'0'))+Number((items.find(x=>x.id==indexTwoId+103).as='1':'0')+Number((items.find==x=>x.id=>x.id==10'))+index='0'))作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为作为id==索引WOID+110).as=='1'?'1':'0'))}/10]

我的数组如下

    count: 1,
    categories: [
        {id:1,as:0},
        {id:2,as:0},
        {id:3,as:0},
        {id:4,as:0},
        {id:5,as:0},
        {id:6,as:0},
        {id:7,as:0},
        {id:8,as:0},
        {id:9,as:0},
        {id:10,as:0},
.
.
.
.]}```

我没有使用React的经验,但在“常规”JS中,您可能会这样做:

let sum = items.reduce((item, total) => {
    if (item.id < indexTwoId + 101 || item.id > indexTwoId + 110) return total;
    if (item.as === '1') return total + 1;
    return total;
}, 0)
let sum=items.reduce((item,total)=>{
if(item.idindexTwoId+110)返回总计;
如果(item.as=='1')返回总计+1;
返回总数;
}, 0)
您可能可以使用三元运算符将其“转换”为一行

编辑: 如果您只想按标准计算项目,则:

items.filter(x => x.id >= indexTwoId + 101 && x.id <= indexTwoId + 110 && x.as === '1').length

items.filter(x=>x.id>=indextwid+101&&x.id@TheMaster yes,它将继续运行所有数组元素,以给出符合id约束且具有等于“1”的“as”成员的项数。尝试以下操作:
[1,2,3]。reduce((num,total)=>{if(num<2)return total;return total+num;})
。这将产生5。首先非常感谢。红色屏幕显示;不变冲突:对象作为React子对象无效(找到:具有键{id,as}的对象).你是对的。但即使这样,你的也会全部计算在内,而op只计算id为101、102等的第一个项目……对吗?如果id是唯一的,它可能不应该是唯一的matter@TheMaster你指的是第一段还是第二段?你说的“全部计数”是什么意思?你的意思是结果会与op不同,还是内部“流程”会不同?(据说效率较低)@Lee我不确定我是否能帮助应对具体问题,但如果你发布更完整的代码和/或你看到的屏幕截图(错误等),我可以试试