说我有以下数据集:
const art = {
'fields': [
{title:'Title 1'},
{'text': [
{spaces: '1'}, {link: 'This is a link'}, {mouse: 'Yes'}
]},
{title: 'Title 2'},
{title:'Title 3'},
{'text': [
{spaces: '2'}, {link: 'This is a different link'}, {mouse: 'No'}
]},
]};
我想从“ spaces”属性中提取一个新的对象(数组)。除此之外,我需要用空白值来标识那些没有“ spaces”属性的“ title”对象。
我想结束这样的事情:
newArray = ['', '1', '', '', '2']
这可能吗?如果我的用语不好,请原谅我。
答案 0 :(得分:1)
应该不太难。尝试使用Javascript的headers = {'Content-Type': 'application/x-www-form-urlencoded'}
r = requests.post(URL, data=params, headers=headers)
函数...
map()
结果...
const art = {
'fields': [
{title:'Title 1'},
{'text': [
{spaces: '1'}, {link: 'This is a link'}, {mouse: 'Yes'}
]},
{title: 'Title 2'},
{title:'Title 3'},
{'text': [
{spaces: '2'}, {link: 'This is a different link'}, {mouse: 'No'}
]},
]};
const spaces = art.fields.map(function(field) {
if(field.text) {
return field.text[0].spaces;
}
return '';
});
console.log("Spaces?");
console.log(spaces);
请参阅JSBIN上的代码。 Map会传回函式的结果,以进行阵列的迭代。签出Mozilla Developer Network Docs。
答案 1 :(得分:0)
您可以这样做
const newArr = art.fields.map(space => {
return {...space.text}
});
所以我假设您想返回一个包含文本数组对象的新数组
答案 2 :(得分:0)
您可以使用map
方法为art.fields
数组中的每个项目计算一个值。
const art = {
'fields': [
{title:'Title 1'},
{'text': [
{spaces: '1'}, {link: 'This is a link'}, {mouse: 'Yes'}
]},
{title: 'Title 2'},
{title:'Title 3'},
{'text': [
{spaces: '2'}, {link: 'This is a different link'}, {mouse: 'No'}
]},
]};
var newArray = art.fields.map(function(o){
return 'text' in o ? o.text[0].spaces : '';
});
console.log(newArray);
答案 3 :(得分:0)
如果您的文本数组将有多个空格,则应循环遍历并添加如下所示的空格值:
const art = {
'fields': [{
title: 'Title 1'
},
{
'text': [{
spaces: '1'
}, {
link: 'This is a link'
}, {
mouse: 'Yes'
}]
},
{
title: 'Title 2'
},
{
title: 'Title 3'
},
{
'text': [{
spaces: '2'
}, {
link: 'This is a different link'
}, {
mouse: 'No'
}]
},
]
};
var res = art.fields.reduce((ini, curr, idx) => {
if (curr.text) {
curr.text.forEach(arr => {
arr.spaces && ini.push(arr.spaces);
});
} else {
ini.push('');
}
return ini;
}, [])
console.log(res);