数组到字符串的转换-React JS

时间:2019-07-13 16:34:37

标签: javascript reactjs

我有一个api,希望我的数据如下所示

"item_id" : {
  "0": '145',
  "1":  '356',     
 }

但是我提交的数据看起来像,但是我一直在获取数组到字符串的转换。我如何像上面的

那样构造我的数据结构
item_id: Array(2)
0: {item_id: "5a1210d9-cfac-43a0-ae65-3258f118bc8c"}
1: {item_id: "2cf6c7b7-448a-4582-89b2-ed831c2ee2e3"}

COmponent.js

 state = 
    {
      item_id : []
    }

let item_id = this.state.item_id.slice();
var item_id =  parsedData.data.item.id
item_id.push({item_id});
this.setState({ item_id: item_id})

2 个答案:

答案 0 :(得分:0)

您可以使用map仅提取ID,例如

package com.satyamedh.chitchatmessenger;

import android.app.ProgressDialog;
import android.content.Intent;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.FirebaseApp;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.InstanceIdResult;

public class ResigsterActivity extends AppCompatActivity {

    private Button registerButton;
    private EditText userEmail, userPassword;
    private TextView loginactivityLink;

    private FirebaseAuth mAuth;
    private DatabaseReference rootref;

    private ProgressDialog loading_bar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_resigster);
        FirebaseApp.initializeApp(this);

        mAuth = FirebaseAuth.getInstance();
        rootref = FirebaseDatabase.getInstance().getReference();

        MobileAds.initialize(this, "ca-app-pub-3127817354023186~6842500243");

        final AdView mAdView;

        mAdView = findViewById(R.id.register_banner_ad);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
        mAdView.setAdListener(new AdListener() {
            @Override
            public void onAdLoaded() {
                // Code to be executed when an ad finishes loading.
            }

            @Override
            public void onAdFailedToLoad(int errorCode) {
                // Code to be executed when an ad request fails.
            }

            @Override
            public void onAdOpened() {
                // Code to be executed when an ad opens an overlay that
                // covers the screen.
            }

            @Override
            public void onAdClicked() {



                // Code to be executed when the user clicks on an ad.
            }

            @Override
            public void onAdLeftApplication() {
                // Code to be executed when the user has left the app.
            }

            @Override
            public void onAdClosed() {
                // Code to be executed when the user is about to return
                // to the app after tapping on an ad.
            }
        });


        initializeFields();

        loginactivityLink.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                askUserToLogin();
            }
        });

        registerButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                createAccount();
            }
        });


    }

    private void createAccount()
    {
        final String email = userEmail.getText().toString();
        final String password = userPassword.getText().toString();

        if (TextUtils.isEmpty(email))
        {
            Toast.makeText(this, "Please enter Email...", Toast.LENGTH_SHORT).show();
        }

        if (TextUtils.isEmpty(password))
        {
            Toast.makeText(this, "Please enter Password...", Toast.LENGTH_SHORT).show();
        }

        else
        {

            loading_bar.setTitle("Creating new account");
            loading_bar.setMessage("Please wait...");
            loading_bar.setCanceledOnTouchOutside(true);
            loading_bar.show();

            mAuth.createUserWithEmailAndPassword(email, password)
                    .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {

                            if(task.isSuccessful())
                            {


                                final String currentUserID = mAuth.getCurrentUser().getUid();
                                rootref.child("Users").child(currentUserID).setValue("");
                                final String[] deviceToken = new String[1];

                                FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
                                    @Override
                                    public void onSuccess(InstanceIdResult instanceIdResult) {
                                        deviceToken[0] = instanceIdResult.getToken();
                                        // Do whatever you want with your token now
                                        // i.e. store it on SharedPreferences or DB
                                        // or directly send it to server



                                        rootref.child("Users").child(currentUserID).child("device_token").setValue(deviceToken[0]).addOnCompleteListener(new OnCompleteListener<Void>() {
                                            @Override
                                            public void onComplete(@NonNull Task<Void> task)
                                            {
                                                if (task.isSuccessful())
                                                {
                                                    Toast.makeText(ResigsterActivity.this, "Account created successfully...", Toast.LENGTH_SHORT).show();
                                                    loading_bar.dismiss();
                                                    mAuth.signInWithEmailAndPassword(email, password);
                                                    askUserToMain();
                                                }

                                            }
                                        });

                                        rootref.child("Users").child(currentUserID).child("image").setValue("https://firebasestorage.googleapis.com/v0/b/chit-chat-web-chat.appspot.com/o/profile_image.png?alt=media&token=12bc53c2-c27d-420f-9d5f-f84c22a6449c");
                                        rootref.child("Users").child(currentUserID).child("name").setValue("Enter your name here");
                                        rootref.child("Users").child(currentUserID).child("status").setValue("Enter your status here");

                                    }
                                });


                            }

                            else
                            {
                                String messegess = task.getException().toString();
                                Toast.makeText(ResigsterActivity.this, "Error : " + messegess, Toast.LENGTH_SHORT).show();
                                loading_bar.dismiss();
                            }
                        }
                    });
        }

    }

    private void initializeFields()
    {

        registerButton = (Button) findViewById(R.id.register_button);
        userEmail = (EditText) findViewById(R.id.register_email);
        userPassword = (EditText) findViewById(R.id.register_password);
        loginactivityLink = (TextView) findViewById(R.id.register_sign_in);
        loading_bar = new ProgressDialog(this);

    }

    private void askUserToLogin() {


        Intent loginIntent = new Intent(ResigsterActivity.this, LoginActivity.class);
        loginIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(loginIntent);
        finish();

    }

    private void askUserToMain() {


        Intent mainIntent = new Intent(ResigsterActivity.this, ProfileActivity.class);
        mainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(mainIntent);
        finish();

    }


    private void askUserToUseApp() {


        Intent loginIntent = new Intent(ResigsterActivity.this, LoginActivity.class);
        loginIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(loginIntent);
        finish();

    }

}

答案 1 :(得分:0)

您可以将数组简化为一个对象,例如:

item_id.reduce((acc, curr, i) => {
  acc = {...acc, [i]: curr.item_id}
  return acc;
}, {});