名称// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.coinbase.com/v2/accounts/82de7fcd-db72-5085-8ceb-bee19303080b/addresses");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"name\": \"New receive address\"}");
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Content-Type: application/json";
$headers[] = "Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c";
$headers[] = "CB-ACCESS-KEY: <your api key>";
$headers[] = "CB-ACCESS-SIGN: <the user generated message signature>";
$headers[] = "CB-ACCESS-TIMESTAMP: <a timestamp for your request>";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
非常罕见,我想检查一下,如果属性存在,我想将其推送到新数组。但是,每次我尝试添加条件时都会给我错误。
attribute_name:"position"
循环中的 [0].attribute_name
给了我麻烦。 for
内可能有也可能没有两个数组。但是如果activity_attributes
将它们推送到新数组,我想在第一个数组上进行调用。
itemloop[i].activity_attributes[0].attribute_name
答案 0 :(得分:1)
使用时应使用hasOwnProperty方法
if(itemloop[i].activity_attributes[0].hasOwnProperty('attribute_name') && itemloop[i].activity_attributes[0].attribute_name == "position")
您的代码应该像
if(res.status == "success") {
var itemloop = res.response.activities;
var social_post_link = [];
for(var i=0; i<itemloop.length; i++){
if(itemloop[i].activity_attributes[0].hasOwnProperty('attribute_name') && itemloop[i].activity_attributes[0].attribute_name == "position") {
social_post_link.push(itemloop[i].activity_attributes);
}
}
console.log(social_post_link);
}
答案 1 :(得分:1)
您可以使用if('attribute_name' in yourObject)
来实现这一目标。
<强>演示。强>
var res = {
status: 'success',
response: {
activities : [
{
activity_attributes: [
{
attribute_name: 'position'
}
]
},
{
activity_attributes: [
{
test: 'test'
}
]
}
]
}
};
if(res.status == "success") {
var itemloop = res.response.activities;
var social_post_link = [];
for(var i=0; i<itemloop.length; i++){
if( 'attribute_name' in itemloop[i].activity_attributes[0]){ //HERE
if(itemloop[i].activity_attributes[0].attribute_name == "position") {
social_post_link.push(itemloop[i].activity_attributes);
}
}
}
console.log(social_post_link);
}
&#13;
答案 2 :(得分:1)
Array.prototype.filter()
和Array.prototype.map()
结合起来构建基于arrays
的新predicated rules
,例如attribute_name == 'position'
和return
子values
}。
请参阅下面的实例。
if (res.status == 'success') {
const itemloop = res.response.activities
const social_post_link = itemloop.filter(x => x.attribute_name == 'position').map(x => x.activity_attributes)
console.log(social_post_link)
}
答案 3 :(得分:0)
而不是activity_attributes[0].attribute_name
,请尝试使用activity_attributes[0]['attribute_name'] == 'position'