我在这里有一些模拟的对象问题(不介意他们的问题和选择是胡言乱语)
const questions = {
iq_test: {
questions: [
{
question: 'Find the difference',
choices: ['a1', 'a2', 'a1', 'a3'],
correct: 0
},
{
question: 'What is the next sequence',
choices: ['2', '5', '56', '64'],
correct: 3
},
{ question: 'What should be the next letter',
choices: ['c', 'z', 'e', 'f'],
correct: 3
}]
},
memory_test: {
...omitted
}
}
现在我想要iq_test
let retQuestions = Object.values(questions.iq_test).map(item => {
console.log(item);
return item;
})
地图中的console.log为我提供了这种格式
[ { question: 'Find the difference',
choices: [ 'a1', 'a2', 'a1', 'a3' ],
correct: 0 },
{ question: 'What is the next sequence',
choices: [ '2', '5', '56', '64' ],
correct: 3 },
{ question: 'What should be the next letter',
choices: [ 'c', 'z', 'e', 'f' ],
correct: 3 } ]
但是当我在console.log中时,应该保存返回值的retQuestions我得到了不同的格式
console.log(retQuestions),如下所示,它变成了2d数组
[ [ { question: 'Find the difference', choices: [Array], correct: 0 },
{ question: 'What is the next sequence',
choices: [Array],
correct: 3 },
{ question: 'What should be the next letter',
choices: [Array],
correct: 3 } ] ]
我想再次映射到retQuestions以获取每个问题,但我不能,因为格式正在改变..
答案 0 :(得分:0)
Object.values
返回该对象中所有值的数组。由于questions.iq_test
本身就是一个只有一个键值对的对象,因此在这种情况下你会得到一个二维数组。尝试记录一次。
对于您尝试实现的目标,您应该直接在对象的值上调用map。例如,
let retQuestions = questions.iq_test.questions.map(item => {
console.log(item);
return item;
});
答案 1 :(得分:0)
Object.values()方法返回给定对象自己的可枚举属性值的数组,其顺序与for ... in循环提供的顺序相同(不同之处在于for-in循环枚举属性)原型链也是如此。
因此,在您的情况下,您需要在package org.apache.http.client.test;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
public class ApacheHttpClientTest {
private HttpClient httpClient;
@Before
public void initClient() throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException {
httpClient = HttpClients
.custom()
.setSSLContext(new SSLContextBuilder().loadTrustMaterial(null, TrustAllStrategy.INSTANCE).build())
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
.build();
}
@Test
public void apacheHttpClient455Test() throws IOException {
executeRequestAndVerifyStatusIsOk("https://expired.badssl.com");
executeRequestAndVerifyStatusIsOk("https://wrong.host.badssl.com");
executeRequestAndVerifyStatusIsOk("https://self-signed.badssl.com");
executeRequestAndVerifyStatusIsOk("https://untrusted-root.badssl.com");
executeRequestAndVerifyStatusIsOk("https://revoked.badssl.com");
executeRequestAndVerifyStatusIsOk("https://pinning-test.badssl.com");
executeRequestAndVerifyStatusIsOk("https://sha1-intermediate.badssl.com");
}
private void executeRequestAndVerifyStatusIsOk(String url) throws IOException {
HttpUriRequest request = new HttpGet(url);
HttpResponse response = httpClient.execute(request);
int statusCode = response.getStatusLine().getStatusCode();
assert statusCode == 200;
}
}
上执行map
,因为您只需返回questions.iq_test.questions
,就可以避开item
关键字。
return