如何以适当的格式推送对象中的值

时间:2018-05-16 14:47:25

标签: javascript jquery

以下是我的代码,用于获取具有语言ID和语言文本的语言

0:"1"
1:"Marathi"
2:"2"
3:"English"
4:"4"
5:"Hindi"
6:"3"
7:"French"

但是对于上面的代码,lsLanguagewithTextndValue中的值

1:Marathi
2:English
3.Hindi
4.French

但我想要这样的输出

{{1}}

4 个答案:

答案 0 :(得分:0)

$scope.lsLanguagewithTextndValue.push({ $scope.bulk.Langugaes[p].Value: $scope.bulk.Langugaes[p].Text });

.push中的多个参数只是将每个参数推送到数组中。

答案 1 :(得分:0)

如果您想添加一对key - value,请执行以下操作:

obj[key] = value;

在你的情况下它应该是这样的:

for (var p in $scope.bulk.Langugaes) {
    $scope.lsLanguagewithTextndValue[$scope.bulk.Langugaes[p].Value] = $scope.bulk.Langugaes[p].Text;
}

答案 2 :(得分:0)

在这种情况下,使用地图Array map。这个函数创建一个包含另一个元素的新数组。

$scope.lsLanguagewithTextndValue =
    $scope.bulk.Langugaes.map((langugaes) => {
         // langugaes its a element of $scope.bulk.Langugaes for example 
         // $scope.bulk.Langugaes[p]
         return {langugaes.Value: langugaes.Text}
    })

结果:

  {
    "1": "Marathi"
  },
  {
    "2": "English"
  },
  {
    "3": "Hindi"
  },
  {
    "4": "French"
  }

答案 3 :(得分:0)

试试这个。

const $scope = {
  bulk: {
    Languages: {
      ln1: { value: 1, text: 'Marathi' },
      ln2: { value: 2, text: 'English' },
      ln3: { value: 3, text: 'Hindi' },
      ln4: { value: 4, text: 'French' }
    }
  },
  lsLanguagewithTextndValue: []
}

// just to make it more readable
const langs = $scope.bulk.Languages;

for (let p in langs) {
  $scope.lsLanguagewithTextndValue.push({[langs[p].value]: langs[p].text})
}

console.log($scope.lsLanguagewithTextndValue);