相关疑难解决方法(0)

如何正确克隆JavaScript对象?

我有一个对象,x.我想把它复制为对象y,这样改变y就不要修改了x.我意识到复制从内置JavaScript对象派生的对象将导致额外的,不需要的属性.这不是问题,因为我正在复制我自己的一个文字构造的对象.

如何正确克隆JavaScript对象?

javascript clone javascript-objects

2922
推荐指数
42
解决办法
176万
查看次数

按值复制数组

将JavaScript中的数组复制到另一个数组时:

var arr1 = ['a','b','c'];
var arr2 = arr1;
arr2.push('d');  //Now, arr1 = ['a','b','c','d']
Run Code Online (Sandbox Code Playgroud)

我意识到arr2引用相同的数组arr1,而不是一个新的独立数组.如何复制数组以获得两个独立的数组?

javascript arrays

1638
推荐指数
20
解决办法
85万
查看次数

在Javascript中反转数组而不改变原始数组

Array.prototype.reverse 反转数组的内容(带有变异)......

是否有一个类似的简单策略来反转数组而不改变原始数组的内容(没有变异)?

javascript arrays

157
推荐指数
8
解决办法
5万
查看次数

JavaScript数组rotate()

我想知道旋转JavaScript数组的最有效方法是什么.

我想出了这个解决方案,其中正向n旋转数组向右旋转,负向左旋转n(-length < n < length):

Array.prototype.rotateRight = function( n ) {
  this.unshift( this.splice( n, this.length ) )
}
Run Code Online (Sandbox Code Playgroud)

然后可以这样使用:

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
months.rotate( new Date().getMonth() )
Run Code Online (Sandbox Code Playgroud)

我上面的原始版本有一个缺陷,正如Christoph在下面的评论中指出的那样,正确的版本是(额外的返回允许链接):

Array.prototype.rotateRight = function( n ) {
  this.unshift.apply( this, this.splice( n, this.length ) )
  return this;
}
Run Code Online (Sandbox Code Playgroud)

是否有更紧凑和/或更快的解决方案,可能在JavaScript框架的上下文中?(以下提出的版本都没有更紧凑或更快)

是否有任何JavaScript框架,内置数组旋转?(还没有人回答)

javascript arrays rotation

65
推荐指数
8
解决办法
6万
查看次数

在Angular 2 + TypeScript中深层复制数组

我有一个输入的对象数组.让我们来称呼它content.

尝试深度复制时,它仍然具有对前一个数组的引用.

我需要复制该输入数组,并更改重复部分的一个属性.

很久以来我尝试了不成功的不同方法.

ES6方式:

public duplicateArray() {
  arr = [...this.content]
  arr.map((x) => {x.status = DEFAULT});
  return this.content.concat(arr);
}
Run Code Online (Sandbox Code Playgroud)

slice方式:

public duplicateArray() {
  arr = this.content.slice(0);
  arr.map((x) => {x.status = DEFAULT});
  return this.content.concat(arr);
}
Run Code Online (Sandbox Code Playgroud)

在这两个数组中,所有对象都有status: 'Default'.

在Angular 2中深度复制数组的最佳方法是什么?

javascript typescript angular

63
推荐指数
7
解决办法
9万
查看次数

在javascript中将对象数组复制到另一个数组中

如何将数组的每个元素(元素都是对象)复制到另一个数组中,以便它们完全独立?我不想更改一个数组中的元素来影响另一个元素.

javascript arrays deep-copy

52
推荐指数
4
解决办法
11万
查看次数

无论大小如何,将阵列拼成两半?

我有一个阵列,我想分成两半.所以我可以将前半部分放在右侧,将后半部分放在左侧.

我之前使用过拼接功能:

var leftSide = arrayName.splice(0,2);
Run Code Online (Sandbox Code Playgroud)

但不确定无论大小如何将其拼接成一半,因为数组的大小会动态变化.

javascript arrays

34
推荐指数
6
解决办法
5万
查看次数

替换元素中特定位置的元素而不改变它

如何在不改变数组的情况下完成以下操作:

let array = ['item1'];
console.log(array); // ['item1']
array[2] = 'item2'; // array is mutated
console.log(array); // ['item1', undefined, 'item2']
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,array变量是变异的.如何在不改变阵列的情况下执行相同的操作?

javascript arrays immutability ecmascript-6

31
推荐指数
6
解决办法
3万
查看次数

计算属性中出现意外的副作用

我不知道为什么我的计算机属性错误会产生意外的副作用,如下所示.

错误:

 ?  https://google.com/#q=vue%2Fno-side-effects-in-computed-properties  Unexpected side effect in "orderMyReposByStars" computed property            
  src/components/HelloWorld.vue:84:14
        return this.myRepos.sort((a, b) => a.stargazers_count < b.stargazers_count)
Run Code Online (Sandbox Code Playgroud)

HTML:

<div v-if="myRepos && myRepos.length > 0">
  <h3>My Repos</h3>
  <ul>
    <li v-for="repo in orderMyReposByStars" v-bind:key="repo.id">
      <div class="repo">
        {{repo.name}}
        <div class="pull-right">
          <i class="fas fa-star"></i>
          <span class="bold">{{repo.stargazers_count}}</span>
        </div>
      </div>
    </li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

export default {
  name: 'HelloWorld',
  data () {
    return {
      myRepos: null,  <-- THIS IS ULTIMATELY AN ARRAY OF OBJECTS
    }
  },
  computed: {
    orderMyReposByStars: function () {
      return this.myRepos.sort((a, …
Run Code Online (Sandbox Code Playgroud)

vue.js vuejs2

14
推荐指数
1
解决办法
1万
查看次数

我想用另一个数组值替换所有值,两个数组的大小相同

例如:

var Array1=array(1,2,3,4,5,6);
var Array2=array(7,8,9,10,11,12);
Run Code Online (Sandbox Code Playgroud)

Array2Array1值替换之后应该得到结果数组

var Array1=array(7,8,9,10,11,12);
Run Code Online (Sandbox Code Playgroud)

javascript

12
推荐指数
2
解决办法
2万
查看次数