我正在寻找一些帮助,我正在为客户端编写一段代码,客户端当前将其分析标记硬编码到页面,并发送所有键值。
我们正在使用标签管理系统将它们转换为新的分析平台,他们已经能够更新他们的大多数平台,以创建新分析平台可以参考的对象,但是这个网站是可以管理的第三方他们无法及时解决我们的问题。
我设法成功拉出标签并将标签拆分为参数:
var x = $('img[alt="MI_TAG"]').attr("src");
x.split("&");
创建数组:
1:"109=jsp.searchFlights.initial"
2:"117=Flight Only Journey"
3:"206=02/11/2017"
4:"208=03/11/2017"
5:"212=ALL"
我想要做的是将这些数组字符串创建一个对象调用" mi",如下所示:
109:"jsp.searchFlights.initial"
117:"Flight Only Journey"
204:""
205:""
206:"02/11/2017"
208:"03/11/2017"
有人可以帮忙吗? 感谢大家的帮助,我已经设法在这里提出一些建议并创建对象并看到它退出:
var x = $('img[alt="MI_TAG"]').attr("src");
var split = x.split("&");
var arrayLength = split.length;
var arr = [];
var i = 0;
do {
arr.push(split[i].replace('=',':'));
arr.toString();
console.log(arr);
i += 1;
} while (i < arrayLength);
let mi = {};
arr.forEach(item=>{
let tempArr = item.split(':');
mi[tempArr[0]] = tempArr[1];
})
console.log(mi);
我现在面临的问题是范围,我希望我的对象可以全局引用,我该怎么做?
答案 0 :(得分:3)
从您的数组中,使用reduce
- 拆分字符串中的=
符号,然后创建对象:
let newObject = arr.reduce((obj, item) => {
let parts = item.split("=");
obj[parts[0]] = parts[1];
return obj;
}, {});
答案 1 :(得分:0)
假设您至少使用ECMAScript 5.1,可以使用Array.prototype.forEach()
迭代数组并生成对象。
let myArray = ["109=jsp.searchFlights.initial", "117=Flight Only Journey", "206=02/11/2017", "208=03/11/2017",
"212=ALL"];
let myObject = {};
myArray.forEach(item=>{
let tempArr = item.split('=');
myObject[tempArr[0]] = tempArr[1];
})
console.log(myObject);
产地:
{
"109": "jsp.searchFlights.initial",
"117": "Flight Only Journey",
"206": "02/11/2017",
"208": "03/11/2017",
"212": "ALL"
}