-2

对于该数组中包含 userHandle 数组的每个对象,循环遍历该数组(userHandle one),并检查其中一个值是否与我选择的名为 uid 的字符串匹配。如何用 Javascript 编写该代码?

Array [
      Object {
        "avatar": null,
        "hugCount": 2,
        "id": 35,
        "liked": false,
        "name": "fhfdhdhf",
        "text": "Yoho",
        "timestamp": 1610471860157,
        "uid": "FOgepuJqxXfkHxI8OAV2KMWodXo1",
      },
      Object {
        "avatar": null,
        "hugCount": 1,
        "id": 34,
        "liked": true,
        "mood": 2,
        "name": "fhfdhdhf",
        "text": "I'm fine today.",
        "timestamp": 1607943705709,
        "uid": "FOgepuJqxXfkHxI8OAV2KMWodXo1",
        "userHandle": Array [
          "Aw8AUj1mPkON1Fd1s6LhkNETHfb2",
          "LrIwIx9I1xQBJ7aeCSrinpEaDP53",
        ],
      }]
    
4

2 回答 2

0

这是您需要的功能……您可以在下面看到如何使用它。

您需要传递要查找的值以及包含信息的数组。


function findInUserHandle(uidValue, array)
{
  return array.reduce
  (
    (acum, current) => 
      current.userHandle && current.userHandle.indexOf(uidValue) !== -1 || acum,
      false
  )
}

let array = [
  {
     "avatar": null,
     "hugCount": 2,
     "id": 35,
     "liked": false,
     "name": "fhfdhdhf",
     "text": "Yoho",
     "timestamp": 1610471860157,
     "uid": "FOgepuJqxXfkHxI8OAV2KMWodXo1",
   },
  {
     "avatar": null,
     "hugCount": 1,
     "id": 34,
     "liked": true,
     "mood": 2,
     "name": "fhfdhdhf",
     "text": "I'm fine today.",
     "timestamp": 1607943705709,
     "uid": "FOgepuJqxXfkHxI8OAV2KMWodXo1",
     "userHandle":[
       "Aw8AUj1mPkON1Fd1s6LhkNETHfb2",
       "LrIwIx9I1xQBJ7aeCSrinpEaDP53",
     ],
   }
 ]
 
findInUserHandle('something', array) //?  false
findInUserHandle('Aw8AUj1mPkON1Fd1s6LhkNETHfb2', array) //? true
findInUserHandle('mood', array) //?  false

于 2021-01-15T03:11:02.547 回答
0

试试这个代码:

var uid = "LrIwIx9I1xQBJ7aeCSrinpEaDP53";

yourArray.forEach(function(item, _){
  return item['userHandle']?.indexOf(uid);
});

这 '?' 是确保您的对象包含“userHandle”属性

于 2021-01-15T03:02:42.993 回答