如何使用hasOwnProperty()删除项目数组

时间:2019-08-06 20:19:54

标签: javascript node.js react-native

设置简单的RNApp之后, 并从具有hasOwnProperty的cameraRoll中选择一些照片,我想删除所选的图像,并且我对select也做了相同的操作! 但是使用hasOwnProperty无法删除所选的图像! 拜托,有人可以用hasOwnProperty澄清从数组中删除或添加的人吗?

选择

selectPhoto(ind) {
    let obj = this.state.selected_photos;

    if (obj.hasOwnProperty(ind)) {
      delete obj[ind];
    } else {
      obj[ind] = true;
    }
    this.setState({
      selected_photos: obj
    });
  }

  goPostForm() {
    let photos_uri = [];
    Object.keys(this.state.selected_photos).map((d, k) => {
      photos_uri.push(this.state.photos[k].node.image.uri);
    });
    this.props.navigation.navigate("Post", {
      image: "",
      photos: photos_uri
    });
  }

删除

  

state = {       delete_image:否,       delete_photos:new Object(),};

 deletePhoto(ind) {
    let obj = this.state.delete_photos;
    if (obj.hasOwnProperty(ind)) {
      delete obj[ind];
    } else {
      obj[ind] = true;
    }
    this.setState({
      delete_photos: obj
    });
  }

  render() {
    const { params } = this.props.navigation.state;
    let image = params ? params.image : null;
    let photos = params
      ? params.hasOwnProperty("photos")
        ? params.photos
        : []
      : [];
    return (
      <View
        style={{ paddingTop: 100, paddingHorizontal: 30, flexDirection: "row" }}
      >
        {!image && photos.length > 0
          ? photos.map((d, k) => {
              if (!this.state.delete_photos.hasOwnProperty(k)) {
                return (
                  <View key={k}>
                    <Image
                      source={{ uri: d }}
                      style={{ resizeMode: "contain", height: 72, width: 72 }}
                    />
                    <TouchableOpacity onPress={() => this.deletePhoto(k)}>
                      <Text>Delete image</Text>
                    </TouchableOpacity>
                  </View>
                );
              }
            })
          : null}

1 个答案:

答案 0 :(得分:0)

使用findIndexsplice从数组中删除。

--module