我有跟随foobar变量的字符串(我通过查询带有$ http.post的网络服务器来得到它):
var foobar = "[{param1: 'value1'}, {param2: 'value2'}]";
如何制作阵列呢?如果我使用JSON.parse,它将为我提供一个对象(尝试typeof foobar
)。但是,如果我然后使用delete param1
,它将使它成为[null,{param2:'value2'}]。我想要做的,主要是删除第一个或第二个项目。此外,值可能不同,但键将始终保持不变,即。他们将成为数字。
答案 0 :(得分:2)
似乎您想要从删除语句中将数组解析为单个对象。如果是的话......
var foobar = '[{"param1":"value1"},{"param2":"value2"}]';
var json = JSON.parse(foobar);
json = json.reduce(function(previousValue, currentValue){
Object.keys(currentValue).forEach(function(key){
previousValue[key] = currentValue[key];
});
return previousValue;
}, {});
console.log(json);

我可能错了。
答案 1 :(得分:0)
这已经是一个数组var foobar = [{param1: 'value1'}, {param2: 'value2'}];
。
var foobar = [{param1: 'value1'}, {param2: 'value2'}];
// this is an array
console.log(foobar);
// this is an object in an array
console.log(foobar[0]);
答案 2 :(得分:0)
这个
LoginRestApi.java[postLogin]:111) - {"status":"OK","message":"","body":{"principal":"fooinc\\user","ticket":"24e28a47-d852-460e-9690-6196e094469f","roles":"[]"}}
是一个数组。
var foobar = [{param1: 'value1'}, {param2: 'value2'}];

如果要删除第一项,只需使用var foobar = [{param1: 'value1'}, {param2: 'value2'}];
console.log(foobar instanceof Array)
方法:
shift

如果您要删除第二项,可以使用var foobar = [{param1: 'value1'}, {param2: 'value2'}];
foobar.shift();
console.log(foobar)
方法:
pop

答案 3 :(得分:0)
正如其他人所说,你所提供的已经是一个数组。
var foobar = [{param1: 'value1'}, {param2: 'value2'}];
//You can see this because of the []
//You can delete the index of an array by using the splice method
foobar.splice(1,1);
//First param is the index, the second is the number of items to erase
答案 4 :(得分:0)
最让您感到困惑的是typeof
。
对于数组,typeof
会说它是一个对象(as you can read from MDN here)。如果要测试变量是否为数组,可以使用:foobar.isArray()