Javascript 跳过不存在的对象(筛选器)反应为本机

Javascript 跳过不存在的对象(筛选器)反应为本机,javascript,json,loops,react-native,object,Javascript,Json,Loops,React Native,Object,我有一种情况,我在一个对象数组中循环。比如说,当有两个以上的对象时,如果第一个对象不存在,如何跳过该对象并继续到下一个 以下是循环: for (i = 0; i < this.myInputFields.myTextFields.length; i++) { if (!this.myInputFields.myTextFields[i] || this.myInputFields.myTextFields[i] == null || this.myInputFields

我有一种情况,我在一个对象数组中循环。比如说,当有两个以上的对象时,如果第一个对象不存在,如何跳过该对象并继续到下一个

以下是循环:

 for (i = 0; i < this.myInputFields.myTextFields.length; i++) {

        if (!this.myInputFields.myTextFields[i] || this.myInputFields.myTextFields[i] == null || this.myInputFields.myTextFields[i] === '') {
           //go to next
        }

        if (this.myInputFields.myTextFields[i].key) {
             data[this.myInputFields.myTextFields[i].key] = this.myInputFields.myTextFields[i].inputValues;
        }

    }

如你所见,在这个对象之前有一个逗号和一个空格,所以我不知道如何跳过这个空格

这段代码允许您跳过其为空的元素

for (let i = 0; i < this.myInputFields.myTextFields.length; i += 1) {
  if (this.myInputFields.myTextFields[i]) {
    // print valid element if you want or do whatever you want
    data[this.myInputFields.myTextFields[i].key] = this.myInputFields.myTextFields[i].inputValues;
  }
}
for(设i=0;i
更有效的方法是

let array = this.myInputFields.myTextFields.filter(item => item !== undefined); // you can eliminate all undefined elements with filter method

for (let i = 0; i < array.length; i += 1) {
  data[array[i].key] = array[i].inputValues;
}
let array=this.myInputFields.myTextFields.filter(item=>item!==未定义);//可以使用过滤器方法消除所有未定义的元素
for(设i=0;i
如果我能给你多投1票,我会这么做的!非常感谢,我一整天都在试图修复这个bug。顺便说一句,我正在使用第二种方法。还有一个问题,你知道如何检查任何键值是否包含“*”?我无法指定哪个键,因为它们是动态的,但如果其中任何键包含该符号,我需要逐个检查所有键。您可以使用
let newarray=arr.filter(item=>item.key.includes('*')。之后,
newarray
只包含“key”属性具有“*”值的元素。。如果未触发警报,则newarray没有元素。只要再次控制你的方法,一定有逻辑问题在某处。
let array = this.myInputFields.myTextFields.filter(item => item !== undefined); // you can eliminate all undefined elements with filter method

for (let i = 0; i < array.length; i += 1) {
  data[array[i].key] = array[i].inputValues;
}