Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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,如何循环通过这个数组,我想循环,并添加名称值到一个空数组,当我控制台。日志它给出了下面的结果,请您帮助,我的代码的结果是空数组 这个。道具。名字 它表明 (3) [{…},{…},{…}]0:{name:“abc”,id:1}1:{name:“def”,id:2}2: {name:“gh”,id:3}长度:3 proto:数组(0) let titles=[] 让猫来吧 cats=this.props.names 让len=this.props.names.length; 对于(i=0;i

如何循环通过这个数组,我想循环,并添加名称值到一个空数组,当我控制台。日志它给出了下面的结果,请您帮助,我的代码的结果是空数组

这个。道具。名字 它表明

(3) [{…},{…},{…}]0:{name:“abc”,id:1}1:{name:“def”,id:2}2: {name:“gh”,id:3}长度:3 proto:数组(0)

let titles=[]
让猫来吧
cats=this.props.names
让len=this.props.names.length;
对于(i=0;i
从我所看到的。。。做

let titles=[]
let cats=[{name:“abc”,id:1},{name:“def”,id:2},{name:“gh”,id:3}]
对于(var p=0;pconsole.log(titles)
如果您只是想提取ID,而道具和/或名称可能为空或空,您可以使用
映射来完成:

const titles = (props && props.names || []).map(val => val.id);
如果
props
props.names
的计算结果为falsy,则此处
props和&props.names | |【】
将等于
props
。这样,您仍然可以对它应用
map
,在本例中,它将返回一个空数组

功能演示(道具){
const titles=(props&&props.names | |[]).map(val=>val.id);
控制台日志(标题);
}
演示({name:[{name:'one',id:1},{name:'two',id:2},{name:'three',id:3}]});
演示({names:[]});
演示({});

演示(空)
1
应该是
i
,但是你可以用map做得更可读:
const titles=cats.map(cat=>cat.id)
它被更正了,但结果仍然是空数组尝试使用
length
而不是
leng
,或者更好;使用地图。你能发布一些数据样本吗?例如:
this.props.names=[a,b,c,d]
以及预期结果和当前结果
预期结果:[x,y,z];当前结果:[e,r,t]
您基本上可以将此处发布的所有代码替换为
返回此.props.names.map(cat=>cat.id)
添加的代码段。如果
props
为空,这将有何帮助?
const titles = (props && props.names || []).map(val => val.id);