使用变量来决定数组中的哪个对象获取属性?

时间:2010-05-11 21:38:32

标签: javascript arrays object

我有一个有两个文本区域的网络应用程序。当一个文本区域接收到mousedown事件时,设置变量“side”,“left”或“right”。当用户选择文本区域中的某些文本时,会生成三个字符串。一个用于选择开始之前的文本,选择本身以及选择之后的文本到结尾。函数设置为返回如下:

return { head: head_text, tail: tail_text, sel: sel_text, side: text_side }

现在,我创建了一个数组,我想让它以我们得到的方式出现,text.left({“head”:“四分”,“选择”:“和七”,“尾巴” “:”几年前。“}}我假设我会通过text.side = getSelection()执行此操作,但是如何让它来评估变量”side“而不是将其视为”text“中的对象?< / p>

修改: 好的,只是为了澄清一下,我的想法可能完全错误,但是这里有。我想让它成为一个函数可以查看“text”,在文本中看到两个对象,“left”和“right”,然后评估每个对象的head,sel和tail。我使用两个对象会更容易吗?

2 个答案:

答案 0 :(得分:0)

我不完全确定我理解这个问题。但是,我认为您希望使用字符串来访问对象的属性。

Javascript允许你像字典一样:

text["head"] = "four score"; // set's "four score" to the head property of text

text[side] = "your selection"; // where side is a property name

修改

在回答编辑时,创建一个具有两个属性的对象会更容易,并为每个属性分配一个对象。如下所示:

var text = {};
text.left = getHeadSelTail("left");
text.right = getHeadSelTail("right");

您现在可以使用

访问左侧头部
text.left.head = "four score";

右脑袋使用

text.right.head = "erocs ruof";

答案 1 :(得分:0)

我是否正确,假设您想要一个包含valuesheadselection字段tail的数组? 你可以用

var myObject = ....// the method with the return statement from your question
var myArray = [myObject.head, myObject.selection, myObject.tail];

现在,如果您想再次使用完整的字符串,可以使用

var myText = myArray.join("");