Javascript 使用for循环减少相似值

Javascript 使用for循环减少相似值,javascript,arrays,loops,react-native,Javascript,Arrays,Loops,React Native,我有一个简单的JavaScript代码,我编写该代码是为了减少2个数组中的类似值,代码本身工作得非常完美: Javascript代码: var Array2 = [ "1", "2", "3", "4", "5" ]; var Array1 = ["1","2","3"]; var result = Array2.filter(val => !Array1.includes(val)); //var result = []; for(var i =

我有一个简单的JavaScript代码,我编写该代码是为了减少2个数组中的类似值,代码本身工作得非常完美:

Javascript代码:

 var Array2 = [ "1", "2", "3", "4", "5" ]; 
    var Array1 = ["1","2","3"];

    var result = Array2.filter(val => !Array1.includes(val));
    //var result = [];


    for(var i = 0; i < Array1.length ; i++){

        var x = Array1[i];
        var check = false;        

        for( var y = 0; y < Array2.length; y++){

          if(x == Array2[y]){


            check = true;

          }
        }
        if(!check){
          result.push(x);
        }
    }
    console.log(result);
我的渲染:

renderLoader(){

{
this.state.photos.map((p,i)=>{
console.log('this.state.photos',this.state.photos)
返回(
);
})
}
{
this.state.decoyPhotos.map((p,i)=>{
console.log('this.state.decoyPhotos',this.state.decoyPhotos)
返回(
);
})
}
{
this.state.photos.map((p,i)=>{
console.log('this.state.photos',this.state.photos)
返回(
);
})
}
完整代码: 1.
2.SelectedPhoto.js:

在胖箭头函数中使用
this
绝对不是一件好事。如果您使用
onSelectPhoto=function(photo,callback){
而不是
onSelectPhoto=(photo,callback)=>{
onSelectPhoto = (photo, callback) => {

        let photos = new Set([...this.selectedDecoy]);
        let len = this.selectedPhotosIndex; 
        let decoyPhotos = this.state.decoyPhotos;


        //let result = decoyPhotos.filter(val => 
        !photos.includes(val));

        for(var i = 0; i < photos.length ; i++){

            var x = photos[i];
            var check = false;        

            for( var y = 0; y < decoyPhotos.length; y++){

              if(x == decoyPhotos[y]){


                check = true;

              }
            }
            if(!check){
              result.push(x);
            console.log('photos',photos); 


        }

        if (len > this.state.supportLength - 1) {           
            this.limitDialog.open();
        }
        else if (len === (this.state.supportLength - 1)) {
            photos.add(photo);
            this.selectedDecoy = Array.from(photos);
            this.selectedPhotosIndex = this.selectedPhotosIndex + 1;
            callback(true);

        }
        else {
            this.selectedPhotosIndex = this.selectedPhotosIndex + 1;
            photos.add(photo);
            this.selectedDecoy = Array.from(photos);
            callback(true);
        }
        //else {
        //  photos.add(photo);
        //  this.setState({selectedDecoy: Array.from(photos)});
        //  this.props.setSelectedPhotos(len);
        //}
    }
}  
constructor(props) {
        super(props);

        this.selectedDecoy=[];
        this.selectedPhotos = [];
        this.selectedPhotosIndex = 0;


        let photos = this.getSelectedPhotos();

        this.state = {
            decoyPhotos: [],
            photos: photos,
            loader: {
                loading: 1,
                message: "Loading photos..."
            },
            supportLength: photos.length,
            selectedDecoy: [],
            step: 0,
            progress: new Animated.Value(0),
            animationRunning: false
        };

        this.props.navigation.setParams({notificationAction: this.onNotification, isIncome: this.props.isNewNotifications});
    }
                {
                    this.state.photos.map((p, i) => {
                        console.log('this.state.photos.', this.state.photos)
                        return (
                            <SelectedPhoto
                                key={i}
                                index={i}
                                style={{
                                    width: photoWidth,
                                    height: photoWidth,

                                }}
                                limit={this.state.supportLength}
                                photo={p}
                                onSelectPhoto={this.onSelectPhoto}
                                onDeselectPhoto={this.onDeselectPhoto}
                            />
                        );
                    })
                }



                    {
                        this.state.decoyPhotos.map((p, i) => {
                            console.log('this.state.decoyPhotos', this.state.decoyPhotos)
                            return (
                                <SelectedPhoto
                                    key={i}
                                    index={i}
                                    style={{
                                        width: photoWidth,
                                        height: photoWidth,
                                    }}
                                    limit={this.state.supportLength}
                                    photo={p}
                                    onSelectPhoto={this.onSelectPhoto}
                                    onDeselectPhoto={this.onDeselectPhoto}
                                />
                            );
                        })
                    }

                {
                    this.state.photos.map((p, i) => {
                        console.log('this.state.photos.', this.state.photos)
                        return (
                            <SelectedPhoto
                                key={i}
                                index={i}
                                style={{
                                    width: photoWidth,
                                    height: photoWidth,
                                }}
                                limit={this.state.supportLength}
                                photo={p}
                            />
                );
                    })
                }