ホームページ >ウェブフロントエンド >htmlチュートリアル >フロントエンドでよく使用される JavaScript 操作 (コード例)

フロントエンドでよく使用される JavaScript 操作 (コード例)

云罗郡主
云罗郡主転載
2018-10-17 14:57:072476ブラウズ

この記事では、フロントエンドでよく使用される JavaScript の操作 (コード例) について説明します。必要な方は参考にしてください。

1. 文字列

内の指定された文字を削除します。例: "10km" の km を削除します。

var str = "10km"

//方法一:
var res = str.replace('km', '')

//方法二:
var res = str.split('km').join('')
//join方法不传参默认使用逗号作为分隔符

2.添付: Array.from() の使用法:

Array.from(arr, mapfn, thisArg): 2 種類のオブジェクトを実際の配列に変換するために使用されます。

    配列のようなオブジェクト (長さ属性が必要)
  1. Traversable オブジェクト (イテレータ インターフェイスがデプロイされた文字列、ES6 Map および Set の新機能) 。
  2. パラメータ: 1 つ目は渡す必要がある配列で、2 つ目は配列要素を操作して配列を返す関数 (map 関数と同様) です。 3 番目はオプションで、this キーワードへのポインタです。
var arr = [1, 2, 3, 1, 2]

//方法一:
var res = [...new Set(arr)]

//方法二:
var res = Array.from(new Set(arr))

//方法三:
var res = [];
for (var i in arr) {
	if (res.indexOf(arr[i] === -1) {
		res.push(arr[i])
	}
}

//方法四:
var res = []
arr.map((item, index) => {
	if (res.indexOf(item) === -1){
		res.push(item)
	}
})

3. 疑似配列オブジェクトを配列に変換します。

var obj1 = {
	0: 'a',
	1: 'b',
	2: 'c'
}
var arr1 = Array.from(obj1)
console.log(arr1) // []

/* 1. 类数组对象,具有length属性,而普通对象是没有length属性的。*/
/* 2. 类数组对象的属性名必须为非负整数,对象中的属性名会被当做字符串处理。*/

var obj2 = { 
	0: 'a',
	1: 'b',
	2: 'c',
	length: 2
}
var arr2 = Array.from(obj2)
console.log(arr2) // ["a", "b"]

var obj3 = {
	0: 'a',
	1: 'b',
	2: 'c',
	length: 4
}
var arr3 = Array.from(obj3)
console.log(arr3) // ["a", "b", "c", undefined]

var obj4 = {
	0: 'a',
	1: 'b',
	2: 'c',
	length: 3
}
var arr4 = Array.from(obj4, item => item + 1)
console.log(arr4) // ["a1", "b1", "c1"]

var obj5 = {
	"1": "a",
	"0": "b",
	length: 2
}
var arr5 = Array.from(obj5)
console.log(arr5) // ["b", "a"]

4. ブロックレベルのスコープは内部変数の適用につながりません。外部変数。

var obj = {
	0: 'a',
	1: 'b',
	length: 2
}
//方法一:
Array.from(obj)

//方法二:
Array.prototype.slice.call(obj) 

//方法三:
Array.prototype.concat.apply([], obj)

//方法四:
Array.prototype.splice.call(obj, 0) // 返回被删除的元素,原对象obj会被破坏掉
console.log(obj) // obj: {length: 0}

// 上述的Array.prototype 均可用[]代替

6. ES6 でのタグ テンプレートの使用:

//方法一:
JSON.parse(JSON.stringify(obj))

//方法二:递归遍历
function clone (obj) {
  var res = obj.constructor === Array ? [] : {}
  for (var i in obj) {
    res[i] = typeof obj[i] === 'object' ? clone(obj[i]) : obj[i] // 即obj[i]为数组或对象,继续拷贝
  }
  return res
}

//附:数组浅拷贝
var arr = ['a', ['b', ['c']]]

//1.使用slice()
var res = arr.slice(0)
console.log(res) // ['a', ['b', ['c']]]
res[1][1] = 'b'
console.log(res) // ['a', ['b', ['b']]]
console.log(arr) // ['a', ['b', ['b']]]

//2.使用concat()
var arr = ['a', ['b', ['c']]]

var res = [].concat(arr)
res[1][1] = 'b'
console.log(res) // ['a', ['b', ['b']]]
console.log(arr) // ['a', ['b', ['b']]]

//Object.assign()也只能实现对象的浅拷贝,它只是一级属性复制,比浅拷贝多深拷贝了一层
var obj = {a: "a", b: {c: "d"}}
var res = Object.assign({}, obj)
res.b.c= "e"
console.log(res) // {a: "a", b: {c: "e"}}
console.log(obj) // {a: "a", b: {c: "e"}}

上記は完全な概要です。

HTML ビデオ チュートリアル

、PHP 中国語 Web サイトにご注意ください。

以上がフロントエンドでよく使用される JavaScript 操作 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。