[英]How to copy and add element within the same JSON array
美好的一天,我正在一个Ionic 3项目中,其中响应http数据是这样的JSON数组格式(从控制台):Array(5)
0: {record_id: "1", local_TimeStamp: "16:00:00", country: "USA"}
1: {record_id: "2", local_TimeStamp: "17:00:00", country: "Japan"}
2: {record_id: "3", local_TimeStamp: "17:00:00", country: "Korea"}
3: {record_id: "4", local_TimeStamp: "15:00:00", country: "Thailand"}
4: {record_id: "5", local_TimeStamp: "16:00:00", country: "China"}
如何(1)复制“ local_TimeStamp”元素和(2)追加到同一数组索引,以便新的JSON数组如下所示:
0: {record_id: "1", local_TimeStamp: "16:00:00", locat_DateTimeStamp: "03-20-
2018 16:00:00, country: "USA"}
我试图循环并复制local_TimeStamp元素并将其附加为:
var newCountryArray = JSON.parse(countryArray);
newCountryArray.forEach( function( item ) {
var localtime = item.local_TimeStamp;
var new_obj = {'local_DateTimeStamp': '03182018'+localtime };
newCountryArray.item.push( new_obj );
});
jsonCountryArray:any = [];
jsonCountryArray = JSON.stringify(newCountryArray);
但是上面的代码不起作用。 请帮忙!
谢谢。 荷里活
您无需创建新对象。 只需将新属性附加到迭代器即可。
var newCountryArray = JSON.parse(countryArray);
newCountryArray.forEach(function(item) {
var localtime = item.local_TimeStamp;
item.local_DateTimeStamp = '03182018'+localtime; //<-- add property
});
使用.map
和对象传播:
var countryArray = JSON.stringify([ {record_id: "1", local_TimeStamp: "16:00:00", country: "USA"}, {record_id: "2", local_TimeStamp: "17:00:00", country: "Japan"}, {record_id: "3", local_TimeStamp: "17:00:00", country: "Korea"}, {record_id: "4", local_TimeStamp: "15:00:00", country: "Thailand"}, {record_id: "5", local_TimeStamp: "16:00:00", country: "China"} ]) var json = JSON.stringify( JSON .parse(countryArray) .map(entry => ({ ...entry, local_DateTimeStamp: '03182018' + entry.local_TimeStamp })) ) console.log('Json', json)
尝试这个
var newCountryArray = JSON.parse(countryArray);
newCountryArray.forEach( function( item ) {
var localtime = item.local_TimeStamp;
items['local_DateTimeStamp'] = '03182018'+localtime
//assigns string to property local_DateTimeStamp on each iteration
});
希望这可以帮助!
您可以使用Array的filter()
尝试以下操作:
var newCountryArray = [{record_id: "1", local_TimeStamp: "16:00:00", country: "USA"}, {record_id: "1", local_TimeStamp: "17:00:00", country: "Japan"}, {record_id: "1", local_TimeStamp: "17:00:00", country: "Korea"}, {record_id: "1", local_TimeStamp: "15:00:00", country: "Thailand"}, {record_id: "5", local_TimeStamp: "16:00:00", country: "China"}]; newCountryArray = newCountryArray.filter( function( item ) { return item.local_DateTimeStamp = '03182018 ' + item.local_TimeStamp; }); console.log(newCountryArray)
这是一种奇怪的解决方法
let arr = [ {record_id: "1", local_TimeStamp: "16:00:00", country: "USA"}, {record_id: "2", local_TimeStamp: "17:00:00", country: "Japan"}, {record_id: "3", local_TimeStamp: "17:00:00", country: "Korea"}, {record_id: "4", local_TimeStamp: "15:00:00", country: "Thailand"}, {record_id: "5", local_TimeStamp: "16:00:00", country: "China"} ] let newArr = Array(arr.length).fill(0).map((v, i) => Object.assign({}, arr[i], { local_DateTimeStamp: '03182018 '+arr[i].local_TimeStamp })); console.log(newArr);
const array= [ {record_id: "1", local_TimeStamp: "16:00:00", country: "USA"}, {record_id: "1", local_TimeStamp: "17:00:00", country: "Japan"}, {record_id: "1", local_TimeStamp: "17:00:00", country: "Korea"}, {record_id: "1", local_TimeStamp: "15:00:00", country: "Thailand"}, {record_id: "1", local_TimeStamp: "16:00:00", country: "China"} ] const addLocalDate = item => { item.locat_DateTimeStamp = '03182018 '+item.local_TimeStamp; return item; } const newArray = array.map(el => addLocalDate(el)); console.log(newArray); //0: {record_id: "1", local_TimeStamp: "16:00:00", locat_DateTimeStamp: "03-20- 2018 16:00:00, country: "USA"}
尝试这个
const initialCountryArray = [
{record_id: "1", local_TimeStamp: "16:00:00", country: "USA"},
{record_id: "2", local_TimeStamp: "17:00:00", country: "Japan"},
{record_id: "3", local_TimeStamp: "17:00:00", country: "Korea"},
{record_id: "4", local_TimeStamp: "15:00:00", country: "Thailand"},
{record_id: "5", local_TimeStamp: "16:00:00", country: "China"}
];
const newCountryArray = initialCountryArray.map(country => {
return { ...country, 'local_DateTimeStamp': '03182018'+country.local_TimeStamp};
});
console.log(newCountryArray);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.