我被困在这里。我该如何清理这个数组:
{"data":[{"id":"5201521d42"},{"id":"52049e2591"},{"id":"52951699w4"}]}
看起来像:
["5201521d42","52049e2591","52951699w4"]
我正在使用Javascript。
答案 0 :(得分:4)
你只需要迭代现有的数据数组并提取每个id值并将其放入一个新的“干净”数组中,如下所示:
var raw = {"data":[{"":"5201521d42"},{"id":"52049e2591"},{"id":"52951699w4"}]};
var clean = [];
for (var i = 0, len = raw.data.length; i < len; i++) {
clean.push(raw.data[i].id);
}
答案 1 :(得分:1)
如果您可以使用ES5并且性能并不重要,我建议您这样做:
编辑: 看看这个jsperf testcase,map vs manual比慢了大约7-10倍,考虑到这已经是每秒数百万次操作的范围,实际上并没有那么多。因此,在避免过早优化的范例下,这是更清洁和前进的方式。
var dump = {"data":[{"id":"5201521d42"},{"id":"52049e2591"},{"id":"52951699w4"}]};
var ids = dump.data.map(function (v) { return v.id; });
否则:
var data = dump.data;
var ids = [];
for (var i = 0; i < data.length; i++) {
ids.push(data[i].id);
}
答案 2 :(得分:1)
var o = {"data":[{"id":"5201521d42"},{"id":"52049e2591"},{"id":"52951699w4"}]};
for (var i = o.data.length; i--; ){
o.data[i] = o.data[i].id;
}
您正在做的是将现有对象替换为其id
属性的值。
答案 3 :(得分:0)
做类似的事情:
var cleanedArray = [];
for(var i=0; i<data.length; i++) {
cleanedArray.push(data[i].id);
}
data = cleanedArray;
答案 4 :(得分:0)
看看这个fiddle。我认为这就是你要找的东西
oldObj={"data":[{"":"5201521d42"},{"id":"52049e2591"},{"id":"52951699w4"}]};
oldObj = oldObj.data;
myArray = [];
for (var key in oldObj) {
var obj = oldObj[key];
for (var prop in obj) {
myArray.push(obj[prop]);
}
}
console.log(myArray)
答案 5 :(得分:0)
使用Array.prototype.map this documentation page中定义了后备代码,如果用户的浏览器缺少该功能,则会定义该功能。
答案 6 :(得分:0)
var data = {"data":[{"":"5201521d42"},{"id":"52049e2591"},{"id":"52951699w4"}]};
var clean_array = [];
for( var i in data.data )
{
for( var j in data.data[i] )
{
clean_array.push( data.data[i][j] )
}
}
console.log( clean_array );
答案 7 :(得分:0)
您实际上是缩小维度。或者你可能会说你从qube中提取了一个维度。你甚至可以说selecting a column from an array of objects
。但是术语 clean 与您的问题不符。
var list = [];
var raw = {"data":[{"id":"5201521d42"},{"id":"52049e2591"},{"id":"52951699w4"}]};
for(var i=0; i < raw.data.length ; ++i){
list.push(raw.data[i].id);
}
答案 8 :(得分:0)
使用map
上的Array
功能:
data.map(function(item) { return item.id; });
这将返回:
["5201521d42", "52049e2591", "52951699w4"]
什么是map
?这是一种使用提供的函数的结果创建新数组的方法。阅读所有相关内容:map - MDN Docs
答案 9 :(得分:0)
在javascript中清理任何ARRAY的最简单方法 它使用循环遍历数据或手动,如下所示:
let data = {"data":[{"id":"5201521d42"},{"id":"52049e2591"},
{"id":"52951699w4"}]};
let n = [data.data[0].id,data.data[1].id, data.data[2].id];
console.log(n)
输出:
(3) ["5201521d42", "52049e2591", "52951699w4"]