我有一个有两个文本区域的网络应用程序。当一个文本区域接收到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。我使用两个对象会更容易吗?
答案 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)
我是否正确,假设您想要一个包含values
,head
和selection
字段tail
的数组?
你可以用
var myObject = ....// the method with the return statement from your question
var myArray = [myObject.head, myObject.selection, myObject.tail];
现在,如果您想再次使用完整的字符串,可以使用
var myText = myArray.join("");