我有一个对象,我正在尝试获取每个键的最后一个值并将其放入另一个对象中。
var setA = {
'a':'001, 007, 101',
'b':'052, 004, 006, 005',
'c':'003, 002, 001'
}
我想要做的就是得到最后的那样:
var setB = {
'a':'101',
'b':'005',
'c':'001'
}
我怎么能做到这一点?
答案 0 :(得分:4)
循环?
var setB = {}
for (var o in setA) {
var s = setA[o].split(', '),
x = s[s.length - 1]
setB[o] = x
}
答案 1 :(得分:4)
为什么不呢:
var setB = {
'a':setA.a.split(',').pop().trim(),
'b':setA.b.split(',').pop().trim(),
'c':setA.c.split(',').pop().trim()
}
实际上这会获取setA.a
中变量返回的值(依此类推......),将该字符串({1}}字符分割成一个数组,弹出最后一个值那个数组并修剪它的空白。
当我记得一个字符串可以被视为一个字符数组时,从jbabey的答案中提出了以下内容:
,
参考文献:
答案 2 :(得分:2)
您可以使用正则表达式
var setB = {
'a':setA.a.match(/(\d+)$/)[1],
'b':setA.b.match(/(\d+)$/)[1],
'c':setA.c.match(/(\d+)$/)[1]
}
/(\d+)$/
将匹配字符串
答案 3 :(得分:2)
如果你知道你总是想要字符串的最后3个字符,你可以使用substring
var setA = {
'a':'001, 007, 101',
'b':'052, 004, 006, 005',
'c':'003, 002, 001'
}
var setB = {};
for (var item in setA) {
setB[item] = setA[item].substring(setA[item].length-3);
}
答案 4 :(得分:1)
这段代码可以解决问题:
var setB={},temp,prop;
for(prop in setA){
temp=setA[prop].split(', ');
temp=temp[temp.length-1];
setB[prop]=temp;
}