【问题标题】:Create a loop to compile multiple records into a new variable创建一个循环将多条记录编译成一个新变量
【发布时间】:2021-06-18 22:43:41
【问题描述】:

目前,我正在获取附加到单个记录编号的元数据。我使用的过程可行,但有点麻烦,尤其是对于大批量的记录:

var a = 'metadatafrom_123456_record-as_record:record_name,record_date';
var b = 'metadatafrom_23456_record-as_record:record_name,record_date';
var c = 'metadatafrom_789456_record-as_record:record_name,record_date';
var allData = [...a, ...b, ...c];
console.log(allData);

我正在尝试通过创建循环或排序来改进此过程,以插入每个记录号以在 allData 中获得与上述相同的结果。

var numbers = [123456, 23456, 789456];
var allData = [];

for (i = 0; i < numbers.length; i++) {
  console.log(numbers[i]);
  allData = metadatafrom_numbers[i]_record-as_record:record_name,record_date;
} 

console.log(allData);

但是,我没有在控制台中获取 allData 或任何错误。

【问题讨论】:

  • 我已将您的代码放入 2 个 sn-ps 中,因此您可以看到第二个确实产生了错误。猜猜第一个也没有按预期输出。

标签: javascript arrays loops


【解决方案1】:

allData.push() 很好

var numbers = [123456, 23456, 789456];
var allData = [];

for (let num of numbers) {
  allData.push(`metadatafrom_${num}_record-as_record:record_name,record_date`);
}

console.log(allData);

【讨论】:

    【解决方案2】:

    Array.prototype.map(),使用它可以解决问题。

    var numbers = [123456, 23456, 789456];
    const allData = numbers.map(num => `metadatafrom_${num}_record-as_record:record_name,record_date`);
    
    console.log(allData);

    【讨论】:

      【解决方案3】:

      我认为您正在寻找这样的东西:

      const numbers = [123456, 23456, 789456];
      let allData = [];
      
      for (let i = 0; i < numbers.length; i++) {
          console.log(numbers[i]);
          allData.push(`metadatafrom_${numbers[i]}_record-as_record:record_name,record_date`);
      } 
      
      console.log(allData);
      

      【讨论】:

        【解决方案4】:

        您确实收到了错误,因为您忘记引用为字符串:

        Uncaught SyntaxError: Unexpected identifier


        您可以像这样使用inline strings.push()(以防止覆盖数组):

        var numbers = [123456, 23456, 789456];
        var allData = [];
        
        for (i = 0; i < numbers.length; i++) {
          allData.push(`metadatafrom_${numbers[i]}_record-as_record:record_name,record_date`);
        } 
        
        console.log(allData);

        【讨论】:

          【解决方案5】:

          你应该使用 allData.push 而不是 allData = ....:

          allData.push( metadatafrom_numbers[i]_record-as_record:record_name,record_date);
          

          【讨论】:

            猜你喜欢
            • 2019-04-20
            • 1970-01-01
            • 2011-10-22
            • 1970-01-01
            • 2019-08-21
            • 2022-09-29
            • 2021-04-23
            • 2014-01-06
            • 2014-08-03
            相关资源
            最近更新 更多