javascript从数组中获取第二个变量

时间:2015-12-13 12:26:30

标签: javascript variables

我有javascript检查Dynamics CRM中的多个字段。如果它们中的一些或全部为“1”,则它将使用最高值来计算。 我粘贴了一部分剧本:

var level1 = {
percentage: 0, 
label: "MyLabel"
}

var level2 = {
percentage: 0, 
label: "MySecondLabel"
}

if (Xrm.Page.getAttribute("conditioninterested").getValue() == 1) {
    level1[0] = 50;
}

if (Xrm.Page.getAttribute("revenueconditionquote").getValue() == 1) {
level2[0] = 70;
}

var chance = Math.max(level1[0],level2[0]);

在Math.max找到要使用的百分比后,如何获得相应的标签?

2 个答案:

答案 0 :(得分:1)

根据数据结构的方式,我会将关卡对象添加到数组中,然后按filter进行过滤。 [0]返回一个数组,因此您需要获取作为对象的第一个元素var label = [level1, level2].filter(function (el) { return el[0] === chance; })[0].label; // MySecondLabel ,然后获取该对象的标签值。

declare function local:strings($v as item()) as xs:string*
{
  typeswitch ($v)
    case $object as object() return
      for $k in jn:keys($object)
        return local:strings($object($k))
    case $array as array() return
      for $member in jn:members($array)
        return local:strings($member)
    default return $v
};

let $y := {"a":"welcome to the world of", "b":" JSONiq", "x":{"d":"m"}}

return string-join(local:strings($y), "@")

DEMO

答案 1 :(得分:0)

首先,您可以使用构造函数来声明对象实例,其次 level1 level2 是对象,所以基本上有两种方法可以访问对象属性:

  • 点符号,例如。 level1.lebel或level1.percentage
  • []符号。您需要输入密钥,而不是索引号。对象没有索引,它们是键和值对。它们也没有订购。