Javascript 仅从对象文本获取值
从这个问题开始: 是否可以仅从一组名称:值对中获取值?假设我们有一个对象列表,每个对象都有任意数量的值:Javascript 仅从对象文本获取值,javascript,Javascript,从这个问题开始: 是否可以仅从一组名称:值对中获取值?假设我们有一个对象列表,每个对象都有任意数量的值: var items = [ {name:"Foo", age:16, gender:"m"}, {name:"Bar", age:17, gender:"f"}, {name:"foo", age:16, gender:"m"}, {name:"bar", age:18, gender:"m"}, {name:"foobar", age:18, gen
var items = [
{name:"Foo", age:16, gender:"m"},
{name:"Bar", age:17, gender:"f"},
{name:"foo", age:16, gender:"m"},
{name:"bar", age:18, gender:"m"},
{name:"foobar", age:18, gender:"f"},
{name:"barfoo", age:20, gender:"f"}
];
如何返回如下列表:
var items = [
["Foo", 16, "m"],
["Bar", 17, "f"],
["foo", 16, "m"],
["bar", 18, "m"],
["foobar", 18, "f"],
["barfoo", 20, "f"]
];
我已经试过了,但不知道是否有更好的方法
Array.prototype.getValues = function () {
if(typeof(this[0]) != typeof({}))
throw "Array values are expected to be == typeof({})";
var items = [];
for (var i = 0; i < this.length; i++) {
var r = [];
for (var l in this[i]) {
r.push(this[i][l]);
}
items.push(r);
}
return items;
};
Array.prototype.getValues=函数(){
if(typeof(this[0])!=typeof({}))
抛出“数组值应为==typeof({})”;
var项目=[];
for(var i=0;i
我必须问一下你试过什么?我不明白为什么这一点被否决了这么多。-无意冒犯,但在StackOverflow上,人们并不是真的为你写代码,而是在你陷入困境时查看你的代码,告诉你犯了什么样的错误。所以,如果你问一个问题,你通常应该包括你已经尝试过的东西。我删除了我的否决票,因为你包含了你的代码。是的,我通常会发布我尝试过的东西。我引用了我在另一个问题中已经编写的代码。这几乎是一样的…在这一个,而不是使用if(c==0)items.push(r[n]);c+=1代码>,我尝试了其他方法,但在另一种情况下,效果不太好。所以我想知道一种更好的方法来处理任何情况。@SmartLemonArray。prototype
绝对不是这样做的地方,因为这是一种非常特殊的方法,并不适用于每个数组。同意@bfavaretto,Array.prototype应该只适用于所有数组。我同意,但我很多东西都需要它。而且它只存在于js的某些文件中,并且该页面中只使用该文件。但是为什么不定义一个可以传递数组的函数呢?不需要把它放在原型机上
var newitems=[];
//loop through each item in the original
for(var i =0; i<items.length; i++)
{
newitems[i] = [];
//loop over the properties in each element and push it to an array
for(var prop in items[i]){
newitems.push(items[i][prop]);
}
}
var newitems = items.map(function(elem){
var item = [];
for(var prop in elem){
item.push(elem[prop]);
}
return item;
})