Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为数组类创建方法?_Javascript_Arrays_Oop_Object_Methods - Fatal编程技术网

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];

抱歉,我知道这是编程101,但我找不到任何好的文档

我有一个数组,我想将每个成员强制转换为一个对象,然后按指定的名称调用它们(如果javascript允许非数字索引值,这会简单得多)。例如:

 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);