Javascript 如何为数组类创建方法?
抱歉,我知道这是编程101,但我找不到任何好的文档 我有一个数组,我想将每个成员强制转换为一个对象,然后按指定的名称调用它们(如果javascript允许非数字索引值,这会简单得多)。例如:Javascript 如何为数组类创建方法?,javascript,arrays,oop,object,methods,Javascript,Arrays,Oop,Object,Methods,抱歉,我知道这是编程101,但我找不到任何好的文档 我有一个数组,我想将每个成员强制转换为一个对象,然后按指定的名称调用它们(如果javascript允许非数字索引值,这会简单得多)。例如: var things = ['chair', 'tv', 'bed']; var costs = ['10', '100', '75']; for (var i = 0; i < things.length; i++) { thing.name = things[i];
var things = ['chair', 'tv', 'bed'];
var costs = ['10', '100', '75'];
for (var i = 0; i < things.length; i++) {
thing.name = things[i];
thing.cost = costs[i];
}
alert(thing.name('tv').cost);
但这仍然要求每个对象都有一个唯一的变量名,这与整个要点背道而驰。我想要的是简单地将所有数组放入某个泛型类中,并按名称调用所需的值
我知道这很容易问,但我被卡住了
谢谢。为什么不使用对象
var things = {
chair: 10,
tv: 100,
bed: 75
};
alert(things.chair); // 10
alert(things['tv']); // 100
仅使用dictionary对象如何:
var things = {'chair':10, 'tv':100, 'bed':75};
alert(things['chair'])
// if you want to use things['chair'].cost, it'd look more like this:
var things = {'chair': {cost: 10}, 'tv': {cost: 100}, 'bed': {cost: 75}};
使用为什么不将数组定义为类似
var things = {'chair':10, 'tv':100, 'bed':75}
然后可以访问价格,如关联数组的属性
things.chair
会给你10个为什么不试试JSON: 像
var myArray={“things”:[
{“名称”:“主席”,“价格”:“10”},
{“名称”:“电视”,“价格”:“100”},
{“名称”:“床”,“价格”:“75”}
]};
//现在你可以这样使用它了
for(var i=0;i
如果需要使用原始数据格式执行此操作(因为您对其没有影响),请使用以下方法:
var things = ['chair', 'tv', 'bed'];
var costs = ['10', '100', '75'];
var associatedThings;
for(i=0,x=things.length;i<x;i++){
associatedThings[things[i]] = {cost: costs[i]};
}
alert(associatedThings['tv'].cost);
var things=[‘椅子’、‘电视’、‘床’];
风险价值成本=['10','100','75'];
关联事物;
对于(i=0,x=things.length;i您考虑过使用JSON对象格式吗?顺便说一句,这不是编程101,您似乎已经记下来了。这只是javascript 101,因为javascript的对象概念与大多数其他语言不太一样(它更酷!)。您说javascript不允许非数字索引值,但它允许!var x;x['imNotaNumber']='hai';完全有效。
things.chair
var myArray= {"things": [
{"name":"chair","price":"10"},
{"name":"tv","price":"100"},
{"name":"bed","price":"75"}
]};
//now you can use it like this
for(var i=0; i< myArray.things.length; i++)
{
alert(myArray.things[i].name + " costs " + myArray.things[i].price);
}
var things = ['chair', 'tv', 'bed'];
var costs = ['10', '100', '75'];
var associatedThings;
for(i=0,x=things.length;i<x;i++){
associatedThings[things[i]] = {cost: costs[i]};
}
alert(associatedThings['tv'].cost);