如何从angularjs中的JSON中的一个属性获取最后一个值

时间:2016-03-06 08:29:29

标签: angularjs json

所以我有聊天应用程序,这个JSON:

{
    "561c": [{
        "from": "561c",
        "fromname": "ryan",
        "to": "sasa",
        "messgae": "hey"
    }, {
        "from": "5512",
        "fromname": "sasa",
        "to": "ryan",
        "messgae": "hey too"
    }]
}

但是当用户发送消息时,此JSON将始终加起来。我想从“message”中取最后值,在我的文字转语音代码中使用此值,如何编写代码?

这是我的文字转语音:

$scope.speakText = function() {
    TTS.speak({
           text: ***this place is for the code***,
           locale: 'en-GB',
           rate: 0.75
       }, function () {
           // handle the succes case
       }, function (reason) {
           // Handle the error case
       });
  };

4 个答案:

答案 0 :(得分:2)

在对象'561c'上使用forEach循环,如

   var messArray = [];
    561c.forEach(function(obj){

    messArray.push(obj.message)})

var text = messArray.join();

您将获得messArray中的所有消息。 如果我理解你的问题是正确的。

答案 1 :(得分:1)

//获取数组的最后一个元素

var lastIndex = 561c.length();
var lastObj = 561c[lastIndex];

//从数组561c的最后一个对象获取消息

var lastMessage = lastObj.message;

你得到了你想要的东西(y);

答案 2 :(得分:0)

您可以使用"采摘" underscore.js的函数 - http://underscorejs.org/#pluck

_。采摘(你的JSON数组,' messgae');

答案 3 :(得分:0)

您可以将$ scope传递给您的函数然后传递561c您将获得对象然后您可以在其中索引消息

示例:

$scope.chat =   {
"561c": [{
    "from": "561c",
    "fromname": "ryan",
    "to": "sasa",
    "messgae": "hey"
}, {
    "from": "5512",
    "fromname": "sasa",
    "to": "ryan",
    "messgae": "hey too"
}]
}

angular.module('app',[]).controller('myctrl', function($scope, data){
$scope.561c = data.messgae; 
 }